&gt; A C++ implementor could use a strategy similar to what is used in Java and C#, and re-instantiate every template on demand at runtime.<p>Are you sure? Expanding templates can affect the parsing of subsequent code, as this example illustrates: <a href="http:&#x2F;&#x2F;yosefk.com&#x2F;c++fqa&#x2F;web-vs-c++.html#misfeature-3" rel="nofollow">http:&#x2F;&#x2F;yosefk.com&#x2F;c++fqa&#x2F;web-vs-c++.html#misfeature-3</a> You pretty much have to expand them at compile time.<p>(This sort of complexity illustrates why I prefer generics to templates, incidentally.)