Beste Einführung in die Metaprogrammierung von C ++ - Vorlagen? [geschlossen]

Statische Metaprogrammierung (auch "Template-Metaprogrammierung" genannt) ist eine großartige C ++ - Technik, die die Ausführung von Programmen zur Kompilierungszeit ermöglicht. Eine Glühbirne ging in meinem Kopf aus, sobald ich dieses kanonische Metaprogrammbeispiel las:

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

Wenn Sie mehr über die statische Metaprogrammierung in C ++ erfahren möchten, welche Quellen sind die besten (Bücher, Websites, Online-Kursunterlagen usw.)?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage