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?