Condividi tramite


Specializzazione esplicita di modelli di funzioni

Con un modello di funzione, è possibile definire il comportamento speciale per un tipo specifico fornendo una specializzazione esplicita (ignora) del modello di funzione per quel tipo. Ad esempio:

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

Questa dichiarazione consente di definire una funzione diversa per le variabili double. Analogamente alle funzioni non modello, vengono applicate le conversioni di tipo standard (quali la promozione di una variabile di tipo float a double).

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 funzioni