¿Mejor introducción a la metaprogramación de plantillas en C ++? [cerrado]

La metaprogramación estática (también conocida como "metaprogramación de plantillas") es una excelente técnica de C ++ que permite la ejecución de programas en tiempo de compilación. Una bombilla se encendió en mi cabeza tan pronto como leí este ejemplo de metaprogramación canónica:

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

Si uno quiere aprender más sobre la metaprogramación estática de C ++, ¿cuáles son las mejores fuentes (libros, sitios web, cursos en línea, lo que sea)?

Respuestas a la pregunta(8)

Su respuesta a la pregunta