Specializzazione esplicita di template di funzione

Con un modello di funzione, è possibile definire il comportamento speciale per un tipo specifico fornendo una specializzazione esplicita (override) del template di funzione per quel tipo.Di seguito è riportato un esempio:

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

Questa dichiarazione consente di definire una funzione diversa per doppio variabili.Analogamente alle funzioni non template, conversioni di tipo corrente (come promuovere una variabile di tipo float in doppio) vengono applicate.

Esempio

// 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()
{
}

Vedere anche

Riferimenti

Modelli di funzione