As much as I like the premise of the article, I see two serious problems, that would need to be resolved for the &quot;magic wand&quot; tool to be useful, and it&#x27;s not very obvious for me how:<p>1. What about <i>templates</i>? If there&#x27;s a &quot;template&lt;T&gt; void foo(x &amp;T)&quot;, and it does &quot;x++&quot; inside, and I sometimes use it on int, sometimes on bool, how would the magic wand upgrade only the bool cases to &quot;x = true&quot;? (And please don&#x27;t tell me &quot;then you have borked codebase, u go fix it, man!&quot; In C++, you have codebase you have, sometimes decades of legacy code you hope to upgrade bit by bit &quot;when time, boss and priorities permit&quot;.)<p>Similarly, if the template does &quot;x = 0;&quot;, how could the magic wand upgrade only the cases where T is a pointer, to &quot;x = nullptr;&quot;?<p>2. One more important, yet not mentioned feature of the magic wand tool, would be that it&#x27;d have to be <i>flawless</i>! If the tool has bugs, it could break my codebase without me knowing, till it&#x27;s too late. Especially tricky here is how would the tool behave on code with <i>undefined behavior</i>; after years of working with C++, I have a nagging suspicion that virtually <i>every</i> sizable C++ codebase does actually have some undefined behavior lurking somewhere.