Namespaces
Variants

Template Metaprogramming

From cppreference.net


Метапрограммирование шаблонов — это семейство техник для создания новых типов и вычисления значений во время компиляции. Шаблоны C++ являются полными по Тьюрингу, если нет ограничений на количество рекурсивных инстанцирований и количество разрешённых переменных состояния. Эрвин Унрух первым продемонстрировал метапрограммирование шаблонов на заседании комитета, поручив компилятору выводить простые числа в сообщениях об ошибках. Стандарт рекомендует, чтобы реализация поддерживала как минимум 1024 уровня рекурсивного инстанцирования, а бесконечная рекурсия в инстанцированиях шаблонов является неопределённым поведением.

Внешние ссылки

1. Дэвид Вандевурде, Николаи М. Йосуттис, Дуглас Грегор (2017), C++ Templates - The Complete Guide, 2nd Edition.
2. Викиучебник: Template Meta-Programming.
3. Википедия: Template Meta-Programming.