Statyczne metaprogramowanie (zwane również "metaprogramowaniem szablonu") jest świetną techniką C++, która pozwala na wykonywanie programów podczas kompilacji. Żarówka poszedł w mojej głowie tak szybko, jak czytam ten kanoniczny przykład METAPROGRAMOWANIE:Najlepsze wprowadzenie do metaprogramowania szablonów 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;
}
Jeśli ktoś chce dowiedzieć się więcej o C++ statyczne metaprogramowanie, jakie są najlepsze źródła (książki, strony internetowe, szkoleniowych on-line , cokolwiek)?
żarówka "wyłączyła się" lub "włączono"? – horseyguy
Wyłącz. Zdecydowanie wyłączony. –