ExpertiDict

C++ · Essencial · Inglês · Técnico

template

ˈtɛm.pleɪtsubstantivo

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 = int

Exemplos

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.

Veja também

Todos os termos de C++