Przeciążony wskaźnik funkcji członka do szablonu

Próbuję przechowywać wskaźniki funkcji składowych według takich szablonów: (To jest uproszczona wersja mojego prawdziwego kodu)

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) {}
};

Następnie chcę wykonać następujące czynności dla każdej przeciążonej metody w GApp:

connect(&GApp::foo); 

Wywołanie tego dlafoo() jest w porządku, ale jak mogę to nazwaćfoo(double d)? Dlaczego nie działa poniższy kod?

connect((&GApp::foo)(double)); 

To mi da

błąd składniowy: „podwójne” powinno być poprzedzone znakiem „)”

Nie rozumiem składni, której należy użyć tutaj. To może być głupia kwestia, ale czy ktoś może mi w tym pomóc?

questionAnswers(6)

yourAnswerToTheQuestion