ich ein Funktionsobjekt mit einem expliziten (dh nicht-abgeleitet) Template-Parametern wie folgt definiert:C++ Funktionsobjekte mit explizitem Template-Parameter
struct foo
{
template<class T>
T operator()() const
{
return 5;
}
};
foo bar = {};
Wenn ich versuche, es so zu nennen:
int main()
{
int i = bar<int>();
return 0;
}
Ich bekomme einen Kompilierfehler. Gibt es keine Möglichkeit, das Funktionsobjekt mit einem Template-Parameter wie eine reguläre Funktion aufzurufen? Ich muss es wirklich als Funktionsobjekt haben. Eine freie Funktion zu machen, ist für mich nicht wirklich eine Option (oder zumindest eine sehr chaotische Option).
möglich Duplikat [? Wie rufe ich einen templatized Operator()()] (http://stackoverflow.com/questions/11105060/how -do-i-call-a-templatized-operator) – ildjarn