Wie wir schon anhand kleiner Beispiele gesehen haben, ist die Templategenerierung keine reine Textersetzung, da z.B. implizite Typumwandlung nicht erlaubt ist. Dies geschieht um eine strenge Typsicherheit zu gewährleisten. Probleme kann es zum Beispiel auch bei mehrfacher Ableitung und virtuellen Funktionen geben, da Basisklasse und abgeleitete Klassen nicht mehr im Typ übereinstimmen müssen und dann die Polymorphie nicht unterstützt wird.
Ein weiteres Problem ist, daß nicht nur die Deklarationen von Klassen- und Funktionstemplates in einem header-File zur Verfügung gestellt werden müssen, sondern auch die Definitionen, damit der Compiler die entsprechenden Klassen und Funktionen auch erzeugen kann. Dies erfordert in großen Programmen eine durchdachte Organisation. Die meisten Entwicklungsumgebungen bieten hierfür noch keine Lösung an.