me encontré con un código aquí Printing 1 to 1000 without loop or conditionals¿Cómo funciona la recursión en tiempo de compilación?
Por favor alguien puede explicar cómo funciona el tiempo de compilación de recursividad, no podían encontrar en Google
// compile time recursion
template<int N> void f1()
{
f1<N-1>();
cout << N << '\n';
}
template<> void f1<1>()
{
cout << 1 << '\n';
}
int main()
{
f1<1000>();
}
Gracias!
En realidad hay un truco, la especialización es un condicional, aunque no existe la palabra clave 'if' ... –
¿Existe una regla de oro mucho más rápida que la recursión de tiempo de ejecución? –
¿Cuál es el beneficio de usar esto en lugar de la recursión regular? – zzzzz