Beachten Sie, dass Vorlagen die beste Lösung sind. Ich habe meine eigene in den letzten 5 Jahren nur einmal definiert, und meine Kollegen, die diesen Code überprüft haben, haben dies nie getan. Die Fälle, in denen Vorlagen sehr sinnvoll sind, wurden größtenteils bereits in Standardbibliotheken implementiert.
Bei der generischen Programmierung sollten Sie darauf achten, dass Sie Funktionen kopieren und einfügen, um nur geringfügige Änderungen vorzunehmen, z. B. an Konstanten oder Typen, und keine saubere Methode finden, um Vererbungs- oder Funktionsparameter zu verwenden, um Wiederholungen zu vermeiden du selber.
Eine ziemlich häufige Art und Weise, wie Vorlagen verwendet werden, ist die Typensicherheit, wenn Sie Typen haben, die sich gleich verhalten, aber aus irgendeinem Grund nicht versehentlich verwechselt werden sollen.
Bei der Berechnung der Kompilierungszeit mithilfe von Vorlagen sollten Sie auf ressourcenintensive Berechnungen achten, bei denen alle Eingaben zur Kompilierungszeit bekannt sind, bei denen jedoch unterschiedliche konstante Eingaben an verschiedenen Stellen im Code verwendet werden. Beachten Sie jedoch, dass dies Ihre Kompilierungen jedes Mal verlangsamt. Daher ist es häufig vorzuziehen, die Ergebnisse nur manuell hart zu codieren, wenn sie sich nicht sehr oft ändern.
Einige Befürworter verwenden Vorlagen für Mikrooptimierungen wie das Vermeiden der Suche nach virtuellen Tabellen mithilfe statischen Polymorphismus oder zum Abrollen von Schleifen. Meiner Meinung nach überwiegt die Komplexität jedoch normalerweise die Leistungssteigerung, es sei denn, Ihr Code ist sehr leistungskritisch.