<div dir="ltr">Hey everyone,<div><br></div><div>Just wondering if there's a clang tool that can analyse an algorithm to suggest where standard algorithms can be replace handwritten algos?</div><div>E.g.</div><div><br></div><div><font face="monospace">int i = 0;</font></div><div><font face="monospace">for (; i < v.size(); ++i)</font></div><div><font face="monospace">   if (v[i] == expected)</font></div><div><font face="monospace">      break;</font></div><div><font face="monospace">if (i != v.size())<br></font></div><div><font face="monospace">   some_function(v[i]);</font></div><div><font face="monospace"><br></font></div><div>Can be rewritten to</div><div><font face="monospace"><br></font></div><div><font face="monospace">auto i = find(v.begin(), v.end(), expected);</font></div><div><font face="monospace">if (i != v.end())</font></div><div><font face="monospace">   some_function(*i);</font></div><div><br></div><div>or in C++17:</div><div><br></div><div><font face="monospace">if (auto i = find(v.begin(), v.end(), expected); i != v.end())</font></div><div><font face="monospace">   some_function(*i);</font></div><div><br></div><div>If not, how difficult a task is it to write such a tool? Is there anything that one should take into special consideration while writing this tool? Do you think it would have a lot of use-cases? (I do, based on my company's code base, and code I have seen while marking assignments).</div><div><br></div><div>Cheers,</div><div><br></div><div>Chris</div></div>