Лучшее введение в метапрограммирование шаблонов C ++? [закрыто]

Статическое метапрограммирование (также известное как «метапрограммирование шаблона») - это отличный метод C ++, который позволяет выполнять программы во время компиляции. У меня в голове погасла лампочка, как только я прочитал этот пример канонического метапрограммирования:

#include <iostream>
using namespace std;

template< int n >
struct factorial { enum { ret = factorial< n - 1 >::ret * n }; };

template<>
struct factorial< 0 > { enum { ret = 1 }; };

int main() {
    cout << "7! = " << factorial< 7 >::ret << endl; // 5040
    return 0;
}

Если кто-то хочет больше узнать о статическом метапрограммировании на C ++, каковы лучшие источники (книги, веб-сайты, онлайн-курсы и т. Д.)?

Ответы на вопрос(8)

Ваш ответ на вопрос