Перегруженная функция-член указатель на шаблон
Я пытаюсь сохранить указатели на функции-члены с помощью таких шаблонов: (Это упрощенная версия моего реального кода)
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 ')'
Я не понимаю синтаксис, который должен использоваться здесь. Это может быть глупо, но может ли кто-нибудь помочь мне в этом?