Templates - Parte 3

Templates em C++ - Parte 3

Parâmetros template de template

Apesar de parecer um pouco estranho o nome template de template, refere-se a uma categoria de parâmetro de template dos quais eles mesmos sejam template, similar a tipos do tipo template.

Antes da versão C++17, só era permitido a palavra chave class. Após esta versão, foi permitido o uso de typename e class.

Se não existisse essa alternativa, não teria como usar um argumento template como parâmetro.

No modo tradicional seria

Stack<int, std::vector<int>> vStack;  // pilha que usa inteiro, sem usar template template

Com template template poderíamos ter a seguinte declaração

Stack<int, std::vector> vStack;        // integer stack that uses a vector_

Repare que