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