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.
|
Dieser Abschnitt ist unvollständig
Grund: Techniken (Spezialisierungen, SFINAE, ADL, Indexsequenzen, Folds, constexpr if, etc) |
|
Dieser Abschnitt ist unvollständig
Grund: Begriffe (traits, typelists, metafunctions, etc) |
|
Dieser Abschnitt ist unvollständig
Grund: Bibliotheken Boost.MPL / Boost.Mp11 / Metal / Kvasir.MPL / Boost.Hana / etc (vielleicht sogar Loki aus den dunklen Zeiten) |
|
Dieser Abschnitt ist unvollständig
Grund: Geschichte vielleicht |
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. |