Template Metaprogramming
From cppreference.net
Метапрограммирование шаблонов — это семейство техник для создания новых типов и вычисления значений во время компиляции. Шаблоны C++ являются полными по Тьюрингу, если нет ограничений на количество рекурсивных инстанцирований и количество разрешённых переменных состояния. Эрвин Унрух первым продемонстрировал метапрограммирование шаблонов на заседании комитета, поручив компилятору выводить простые числа в сообщениях об ошибках. Стандарт рекомендует, чтобы реализация поддерживала как минимум 1024 уровня рекурсивного инстанцирования, а бесконечная рекурсия в инстанцированиях шаблонов является неопределённым поведением.
|
Этот раздел не завершён
Причина: Методы (специализации, SFINAE, ADL, индексные последовательности, свёртки, constexpr if и т.д.) |
|
Этот раздел не завершён
Причина: Термины (traits, typelists, metafunctions и т.д.) |
|
Этот раздел не завершён
Причина: Библиотеки Boost.MPL / Boost.Mp11 / Metal / Kvasir.MPL / Boost.Hana / и др. (возможно даже Loki из тёмных времён) |
|
Этот раздел не завершён
Причина: Возможно, история |
Внешние ссылки
| 1. | Дэвид Вандевурде, Николаи М. Йосуттис, Дуглас Грегор (2017), C++ Templates - The Complete Guide, 2nd Edition. |
| 2. | Викиучебник: Template Meta-Programming. |
| 3. | Википедия: Template Meta-Programming. |