Compartilhar via


Especialização explícita de modelos de função

Com um modelo de função, você pode definir o comportamento especial para um tipo específico, fornecendo uma especialização no explícita (substituir) o modelo de função para esse tipo.Por exemplo:

template<> void MySwap(double a, double b);

Essa declaração permite que você defina uma função diferente para double variáveis.Como não-modelo funções, as conversões de tipo padrão (como, por exemplo, promovendo uma variável do tipo float para double) são aplicadas.

Exemplo

// explicit_specialization.cpp
template<class T> void f(T t)
{
};

// Explicit specialization of f with 'char' with the
// template argument explicitly specified:
//
template<> void f<char>(char c)
{
}

// Explicit specialization of f with 'double' with the
// template argument deduced:
//
template<> void f(double d)
{
}
int main()
{
}

Consulte também

Referência

Modelos de função