Arvorezinha – C++ Templates
A pedido de várias famílias, aqui está uma versão da árvorezinha em C++, sem loops. Os loops são avaliados durante a compilação; o código final contém apenas a sequência de caracteres impressos.
#include <iostream>
enum
{
LIMIT = 5+1
};
template <int x>
void inner(void)
{
std::cout << '*';
inner<x-1>();
}
template <>
void inner<0>(void){}
template <int x>
void outer(void)
{
inner<x>();
std::cout << std::endl;
outer<x+1>();
}
template<>
void outer<LIMIT>(void){}
int main(int argc, char **argv)
{
outer<1>();
return 0;
}
Sem loops? isso nao é standard.
Deveras interessante, parabéns.
[...] sendo, hoje trago-vos uma arvorezinha feita com templates de C++. Sim, eu sei. Já temos uma. Mas isto não me impede de utilizar outras capacidades de C++ para cumprir o mesmo objectivo. Ora [...]