Quiero calcular factorial en tiempo de compilación. Encontré alguna manera de resolver el problema, pero quiero saber si hay alguna otra solución para este problema sin usar enum
s. Aquí la solución que usa enum
s.¿Es posible calcular el número factorial en tiempo de compilación, pero sin enumeraciones
#include <iostream>
template <int n>
struct fact
{
enum{value = n*fact<n-1>::value};
};
template<>
struct fact<1>
{
enum{value = 1};
};
int main()
{
std::cout << fact<10>::value;
}
Si no hay otra solución, por favor describir por qué los enum
s son imprescindible.
http://en.wikipedia.org/wiki/Template_metaprogramming, es [una muestra] (http: //en.wikipedia. org/wiki/Template_metaprogramming # Compile-time_class_generation) – sehe