C++ · Avançado · Português · Técnico
especialização de template
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