Como imprime este programa varios números sin bucles ni recursión

Iniciado por geeke, 15 Septiembre 2015, 22:32 PM

0 Miembros y 1 Visitante están viendo este tema.

geeke

Me he encontrado un codigo en C++ muy extraño, el cual imprime una determinada contidad de numeros uno debajo de otro, hasta ahi todo normal pero lo hace sin usar ningun tipo de bucles ni recursión.

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

template<int N>
class PrintOneToN
{
public:
   static void print()
   {
       PrintOneToN<N-1>::print();  // Note that this is not recursion
       cout << N << endl;
   }
};

template<>
class PrintOneToN<1>
{
public:
   static void print()
   {
       cout << 1 << endl;
   }
};
int main()
{
   const int N = 100;
   PrintOneToN<N>::print();
   return 0;
}


Alguien entiendo como funciona este codigo?. Si es asi podria explicarme porfavor ..

patilanz

Creo que dice que no es recursión porque usando las plantillas crea una función diferente para cada numero y cuando llega al ultimo el 1 se llama a la función preparada.
No estoy del todo seguro, que alguien lo confirme.

Un saludo

ivancea96


geeke

Muchas gracias por el enlace son unos crack con Google por aqui xD .. la verdad no recuerdo de donde la saque pero era un foro en ingles, ahora voy a leer la pagina que me pasaste..