Ü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?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage