Ho un oggetto funzione con un esplicito (cioè non dedotto) parametro di template definiti in questo modo:funzione C++ gli oggetti con parametri di modello espliciti
struct foo
{
template<class T>
T operator()() const
{
return 5;
}
};
foo bar = {};
quando provo a chiamare in questo modo:
int main()
{
int i = bar<int>();
return 0;
}
Viene visualizzato un errore di compilazione. Non c'è modo di chiamare l'oggetto funzione con un parametro template come una funzione regolare? Ho davvero bisogno di averlo come oggetto funzione. Fare una funzione gratuita non è un'opzione per me (o almeno, è un'opzione molto complicata).
possibile duplicato di [? Come chiamare un operatore di templatized()()] (http://stackoverflow.com/questions/11105060/how -do-i-call-a-templatized-operator) – ildjarn