Überladener Memberfunktionszeiger auf Vorlage
Ich versuche, Member-Funktionszeiger mit Vorlagen wie der folgenden zu speichern: (Dies ist eine vereinfachte Version meines echten Codes.)
template<class Arg1>
void connect(void (T::*f)(Arg1))
{
//Do some stuff
}
template<class Arg1>
void connect(void (T::*f)())
{
//Do some stuff
}
class GApp
{
public:
void foo() {}
void foo(double d) {}
};
Dann möchte ich für jede überladene Methode in GApp wie folgt vorgehen:
connect(&GApp::foo);
Nennen wir dies fürfoo()
ist ok, aber wie kann ich das denn nennenfoo(double d)
? Warum funktioniert das Folgende nicht?
connect((&GApp::foo)(double));
Es wird mir geben
Syntaxfehler: 'double' sollte ')' vorangestellt werden
Ich verstehe die Syntax nicht, die hier verwendet werden muss. Das mag eine blöde Frage sein, aber kann mir jemand dabei helfen?