Namespaces
Variants

Template Metaprogramming

From de.cppreference.net


Template-Metaprogrammierung ist eine Reihe von Techniken, um neue Typen zu erstellen und Werte zur Kompilierzeit zu berechnen. C++-Templates sind Turing-vollständig, wenn es keine Beschränkungen für die Anzahl rekursiver Instanziierungen und die Anzahl erlaubter Zustandsvariablen gibt. Erwin Unruh war der erste, der Template-Metaprogrammierung in einem Komitee-Treffen demonstrierte, indem er den Compiler anwies, Primzahlen in Fehlermeldungen auszugeben. Die Norm empfiehlt, dass eine Implementierung mindestens 1024 Ebenen rekursiver Instanziierung unterstützt, und eine Endlosschleife in Template-Instanziierungen ist undefiniertes Verhalten.

Externe Links

1. David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor (2017), C++ Templates - The Complete Guide, 2nd Edition.
2. Wikibook: Template Meta-Programming.
3. Wikipedia: Template Meta-Programming.