Template Metaprogramming
Von cppreference.com
Template-Metaprogrammierung ist eine Familie von Techniken zur Erstellung neuer Typen und zur Berechnung von Werten zur Kompilierzeit. C++ Templates sind Turing-vollständig, wenn es keine Beschränkungen für die Menge rekursiver Instanziierungen und die Anzahl der erlaubten Zustandsvariablen gibt. Erwin Unruh war der erste, der Template-Metaprogrammierung auf einer Komiteesitzung demonstrierte, indem er den Compiler anwies, Primzahlen in Fehlermeldungen auszugeben. Der Standard empfiehlt eine Implementierungsunterstützung von mindestens 1024 Ebenen rekursiver Instanziierung, und unendliche Rekursion bei Template-Instanziierungen ist undefiniertes Verhalten.
| Dieser Abschnitt ist unvollständig Grund: Techniken (Spezialisierungen, SFINAE, ADL, Indexsequenzen, Folds, constxpr if, etc.) |
| Dieser Abschnitt ist unvollständig Grund: Begriffe (Traits, Typelisten, Metafunktionen, etc.) |
| Dieser Abschnitt ist unvollständig Grund: Bibliotheken Boost.MPL / Boost.Mp11 / Metal / Kvasir.MPL / Boost.Hana / etc. (vielleicht sogar Loki aus der dunklen Zeit) |
| Dieser Abschnitt ist unvollständig Grund: Geschichte vielleicht |
[bearbeiten] Weblinks
| 1. | David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor (2017), C++ Templates - The Complete Guide, 2nd Edition. |
| 2. | Wikibuch: Template Meta-Programming. |
| 3. | Wikipedia: Template Meta-Programming. |