&gt; Couldn&#x27;t you add detection for when the reverse transformation isn&#x27;t bijective, and then report an error in those cases.<p>I was thinking something along those lines too, but then it kind of undermines the goal of the hypothetical tool the previous article was proposing. To get programmers on board with adding breaking changes to the standard, I think you really need a tool that works near perfectly (which is the ultimate problem). Large codebases use macros and templates a lot in my experience and if the tool chokes on  some those then people are going to be lazy and say &quot;no thanks.&quot; My gut instinct is that it&#x27;d have to be down in the range 10 errors &#x2F; 100kloc before &quot;lazy&quot; (read: busy) programmers would accept it. More crucially, it needs to be sure that it recognizes 100% of errors... it can&#x27;t make <i>any</i> mistakes about when it does decide that a given transformation is correct because bugs introduced by a mistaken translation are probably going to be extremely subtle and difficult to identify.<p>It&#x27;s a crappy situation. I think the author was right in the previous article that a magical perfect transformation tool could allow them to make serious and beneficial (but breaking) changes to C++, but such a tool is unbelievably difficult to actually make.