Freigeben über


Explizite Spezialisierung von Funktionsvorlagen

Bei einer Funktionsvorlage können Sie ein spezielles Verhalten für einen bestimmten Typ definieren, indem Sie eine explizite Spezialisierung (Überschreibung) der Funktionsvorlage für diesen Typ angeben. Beispiel:

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

Durch diese Deklaration können Sie eine andere Funktion für double-Variablen definieren. Wie Nichtvorlagenfunktionen werden standardmäßige Typkonvertierungen (z. B. Höherstufen einer Variable des Typs float auf double) angewendet.

Beispiel

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

Siehe auch

Referenz

Funktionsvorlagen