Метапрограммирование шаблонов
Метапрограммирование шаблонов — это совокупность методов создания новых типов и вычисления значений во время компиляции. Шаблоны C++ являются полными по Тьюрингу, если не ограничено количество рекурсивных инстанцирований и число допустимых переменных состояния. Эрвин Унру был первым, кто продемонстрировал метапрограммирование шаблонов на заседании комитета, дав компилятору команду вывести простые числа в сообщениях об ошибках. Стандарт рекомендует, чтобы реализация поддерживала как минимум 1024 уровня рекурсивного инстанцирования; бесконечная рекурсия при инстанцировании шаблонов приводит к неопределённому поведению.
Внешние ссылки
| 1. | David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor (2017), Шаблоны C++ — полное руководство, 2-е издание. |
| 2. | Викиучебник: Метапрограммирование шаблонов. |
| 3. | Википедия: Метапрограммирование шаблонов. |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/language/template_metaprogramming