Najlepsze wprowadzenie do metaprogramowania w szablonie C ++? [Zamknięte]

Statyczne metaprogramowanie (zwane również „metaprogramowaniem szablonów”) to świetna technika C ++, która umożliwia wykonywanie programów w czasie kompilacji. W mojej głowie zgasła żarówka, gdy tylko przeczytałem ten kanoniczny przykład metaprogramowania:

#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;
}

Jeśli chcesz dowiedzieć się więcej na temat statycznego metaprogramowania C ++, jakie są najlepsze źródła (książki, strony internetowe, oprogramowanie on-line, cokolwiek)?

questionAnswers(8)

yourAnswerToTheQuestion