Sto cercando di puntatori a funzione membro negozio da modelli come questo: (Questa è una versione semplificata del mio codice vero e proprio)sovraccaricato puntatore a funzione membro a Template
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) {}
};
poi voglio fare come quanto segue per ogni metodi di overload in GAPP:
connect(&GApp::foo);
chiamata a questo per foo()
è ok, ma come posso chiamare questo per foo(double d)
? Perché non funziona il seguente?
connect((&GApp::foo)(double));
Mi darà
errore di sintassi: 'doppio' dovrebbe essere preceduto da ')'
Non capisco la sintassi che deve essere utilizzato qui. Questa potrebbe essere una stupida qustion, ma qualcuno può aiutarmi in questo?
È un'idea migliore utilizzare i Functor invece dei puntatori di funzione imho. – Drakosha
L'intero codice fa parte dell'implementazione di un meccanismo di Signal and Slot. Quindi, il litener (che ha lo slot) non vuole sapere del sistema. Quindi, non posso dire all'ascoltatore di fare così, fai così ...... – Morpheus