Template Metaprogramming
From cppreference.net
La métaprogrammation par modèles est une famille de techniques permettant de créer de nouveaux types et de calculer des valeurs au moment de la compilation. Les templates C++ sont Turing complets s'il n'y a pas de limites au nombre d'instanciations récursives et au nombre de variables d'état autorisées. Erwin Unruh fut le premier à démontrer la métaprogrammation par modèles lors d'une réunion du comité en demandant au compilateur d'afficher des nombres premiers dans les messages d'erreur. La norme recommande qu'une implémentation prenne en charge au moins 1024 niveaux d'instanciation récursive, et une récursion infinie dans les instanciations de templates est un comportement non défini.
|
Cette section est incomplète
Raison : Techniques (specializations, SFINAE, ADL, index sequences, folds, constexpr if, etc) |
|
Cette section est incomplète
Motif : Termes (traits, typelists, metafunctions, etc) |
|
Cette section est incomplète
Raison : Bibliothèques Boost.MPL / Boost.Mp11 / Metal / Kvasir.MPL / Boost.Hana / etc (peut-être même Loki des temps anciens) |
|
Cette section est incomplète
Raison : Historique peut-être |
Liens externes
| 1. | David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor (2017), C++ Templates - The Complete Guide, 2nd Edition. |
| 2. | Wikilivre : Programmation métapar modèles. |
| 3. | Wikipédia : Programmation métapar modèles. |