ExpertiDict

C++ · Avançado · Português · Técnico

especialização de template

ispesjalizaˈsɐ̃w̃ dʒi ˈtɛm.pleɪtsubstantivo

Definição de uma versão de um template para um tipo ou padrão específico. Pode ser total, com todos os argumentos fixos, ou parcial (só para classes), com alguns fixos.

Onde usar

Usada em traits, em hash para tipos próprios e para otimizar casos particulares, como bool em um contêiner. Funções não aceitam especialização parcial; usa-se sobrecarga.

Em código

template <typename T>
struct Nome {
  static auto get() { return "?"; }
};
template <>
struct Nome<int> {
  static auto get() { return "int"; }
};

Exemplos

Fiz uma especialização de template para tratar char* de outro jeito.

Funções não têm especialização parcial; use sobrecarga.

Cuidado

A especialização precisa vir antes do primeiro uso que a instancia, senão o programa é mal formado.

Sinônimos

template specialization

Antônimos

template primário

Veja também

Todos os termos de C++