Supongamos que tengo una plantilla de función que se utiliza el parámetro de tipo como un tipo de retorno solamente:duda sintaxis para especializada plantillas de función
template <typename T>
T foo()
{
return whatever;
}
Entonces ¿cuál es la sintaxis correcta para especializarse esa plantilla de función? Los dos siguientes parecen funcionar:
template <>
std::string foo()
{
return whatever;
}
template <>
std::string foo<std::string>()
{
return whatever;
}
¿Hay alguna diferencia entre los dos? Si no, ¿cuál es la forma idiomática?
Con este ejemplo, ya es imposible deducir el argumento de la plantilla en los sitios de llamadas. –