Say voglio una funzione ++ C per eseguire operazioni aritmetiche su due ingressi, trattandoli come un dato tipo:Passa il puntatore al template come funzione?
pseudo:
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);
}
funzioni che si adattano OP potrebbero essere come:
template <class T> add(var X,var Y)
{
return (T)X + (T)Y; //X, Y are of a type with overloaded operators
}
Quindi, la domanda è: quale sarebbe la firma per la funzione? Se le funzioni dell'operatore non sono basate su modelli, posso farlo, ma mi confondo con questa complessità extra.
Vedere gli argomenti del modello di modello. (E non è un errore di battitura.) – sbi
+1, questa è fondamentalmente la risposta corretta su come passare OP. – MSalters
Ho aggiunto questo come risposta. Spero di non aver inserito errori stupidi. – sbi