Compartir a través de


Especialización explícita de las plantillas de función

Con una plantilla de función, puede definir un comportamiento especial para un tipo específico si proporciona una especialización explícita (reemplazo) de la plantilla de función de ese tipo. Por ejemplo:

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

Esta declaración permite definir una función diferente para las variables de tipo double. Al igual que en las funciones que no son de plantilla, se aplican las conversiones de tipo estándar (por ejemplo, promover una variable de tipo float a tipo double).

Ejemplo

// 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 también

Plantillas de función