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 metaprogramming canónica:¿Mejor introducción a la metaprogramación de plantillas 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;
}
Si uno quiere aprender más sobre metaprogramming estática C++, ¿cuáles son las mejores fuentes (libros, sitios web, cursos en línea , lo que sea)?
¿La bombilla se apagó o se encendió? – horseyguy
Off. Definitivamente fuera. –