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 [...]