Перегруженная функция-член указатель на шаблон

Я пытаюсь сохранить указатели на функции-члены с помощью таких шаблонов: (Это упрощенная версия моего реального кода)

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

Затем я хочу сделать следующее для каждого перегруженного метода в GApp:

connect(&GApp::foo); 

Называя это дляfoo() это нормально, но как я могу назвать это дляfoo(double d)? Почему не работает следующее?

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

Это даст мне

syntax error : 'double' should be preceded by ')'

Я не понимаю синтаксис, который должен использоваться здесь. Это может быть глупо, но может ли кто-нибудь помочь мне в этом?

Ответы на вопрос(6)

Ваш ответ на вопрос