decir que quiero una función de C++ para realizar operaciones aritméticas con dos entradas, tratándolos como un tipo determinado:¿Pasa la función puntero a plantilla como argumento de función?
seudo:
function(var X,var Y,function OP)
{
if(something)
return OP<int>(X,Y);
else if(something else)
return OP<double>(X,Y);
else
return OP<string>(X,Y);
}
funciones que se ajustan OP pueden ser como:
template <class T> add(var X,var Y)
{
return (T)X + (T)Y; //X, Y are of a type with overloaded operators
}
Entonces, la pregunta es ¿cómo sería la firma de la función? Si las funciones del operador no tienen plantilla, puedo hacerlo, pero me confundo con esta complejidad adicional.
Mire los argumentos de plantilla de plantilla. (Y eso no es un error tipográfico) – sbi
+1, esa es básicamente la respuesta correcta sobre cómo pasar OP. – MSalters
Agregué esto como una respuesta. Espero no haber cometido ningún error estúpido. – sbi