C++ · Essencial · Inglês · Técnico
template
Mecanismo de programação genérica em que funções e classes são escritas com parâmetros de tipo ou valor. O compilador gera cada versão concreta quando o template é instanciado.
Onde usar
É a base da STL, com vector<T> e map<K, V>. Erros de template geram mensagens longas, e vale procurar a primeira linha que cita o seu código.
Em código
template <typename T>
T maior(T a, T b) {
return a > b ? a : b;
}
auto m = maior(3, 7); // T = intExemplos
This template only compiles if T has operator+.
Esse template só compila se T tiver operator+.
Put the template definition in the header file.
Coloque a definição do template no arquivo de cabeçalho.
Cuidado
Não confunda com generics de Java: em C++ não há apagamento de tipos, e cada instanciação vira código próprio.
Sinônimos
genérico
Origem
Do inglês template, molde ou gabarito.