Requiring a reference implementation with a standard is a bad idea. First off, who&#x27;s going to write it? The compiler vendors are the people who&#x27;d likely do the best job, and they already have to adapt their implementations for changes--now you&#x27;re making them do it twice. Another, even bigger issue, is that it actually doesn&#x27;t tell you what&#x27;s hard to implement. MSVC, gcc, and clang all take different approaches to their compiler, and what can be easy to implement in one could turn out to be ridiculously difficult in another (e.g., exposing a full AST via reflective mechanisms). You need a diversity of implementations, not just one implementation, to know what&#x27;s actually hard to implement and what&#x27;s not.<p>It&#x27;s interesting that you bring up export templates, because that fiasco feature actually already sort of had a reference implementation. The original Cfront compiler actually supported it (admittedly, it was very buggy). The problem with export was that, at the time of discussion (~1996), no one really understood just what the impact of all of the template complexity meant--they assumed that templates were basically just a typesafe variant of the C preprocessor (or at least that most common use could be boiled down to that description; its Turing-completeness was known by then).<p>So, in that vein, export template was seen as a &quot;well, this is going to be tricky, but so is name resolution in general in C++&quot; and the overarching use case was compelling (you can hide the implementation of a regular function, why not templates?). Compiler vendors objected to the feature, but not on the basis that it was essentially impossible to implement, but rather that major design points would need quibbles. It was eventually accepted into the standard largely with the understanding that everyone would implement something close to it, if not the exact current specification.<p>The only thing that would have prevented export template from being standardized would have been requiring a fairly robust implementation that could have discovered that export template really did infect every part of the code base in a horrible way, and it should be noted that reference implementations generally aren&#x27;t that robust. Amaya, after all, didn&#x27;t prevent HTML 4 or CSS 2 from having unimplementable sections.