Arvorezinha — C++ Templates 2
Viva. Há demasiado tempo que não são adicionadas novas entradas à nossa já lendária colecção de arvorezinhas em várias linguagens e dialectos de todo o mundo.
Assim 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 vejam lá:
#include <iostream>
using namespace std;
template<int i>
struct SemiArvorezinha : public SemiArvorezinha<i-1>
{
SemiArvorezinha(){cout << "*";}
};
template<> struct SemiArvorezinha<0> {};
template<int i>
struct Arvorezinha : public Arvorezinha<i-1>, SemiArvorezinha<i>
{
Arvorezinha(){ cout << endl; }
};
template<> struct Arvorezinha<0>{};
int main(int argc, char **argv)
{
Arvorezinha<5> A;
return 0;
}
Em vez de funções com templates, temos nesta encarnação classes e multiple inheritance. Bem haja a todos.
Ui ca bom! Adorava entender isso
para quando uma arvorezinha feita em PRETOMORTO?
[...] a minha última submissão, tem havido vasto progresso no estado da arte da Arvorezinha. Foi lançado um novo standard, e tem [...]