Compilando su C++ 03, ho tentato di scrivere una funzione template di test che restituisce una funzione pointer-to-member di una funzione membro che restituisce int , e prende due argomenti float:Restituire la funzione pointer-to-member (senza typedefs)
template<typename TemplateClass>
int (TemplateClass::*)(float,float) Testtest(TemplateClass &A)
{
return &TemplateClass::Function;
}
Ma, naturalmente, non importa ciò che le variazioni sulla sintassi puntatore-a-membro funzione che uso, il compilatore si lamenta di errori di inizializzazione. Typedef, sebbene funzioni con classi conosciute, per ovvi motivi (conflitti di denominazione), non accetta gli argomenti della classe template per le classi che non posso sapere in anticipo e che probabilmente useranno la stessa funzione.
Che modo non tipografico esiste per ottenere questa funzione per compilare e restituire una funzione puntatore-membro?
Beh, non avrei mai immaginato il primo. È così ... contorto. C++, perché lo fai ?! – c1646091
@ c1646091 Quella sintassi è ereditata da C. – emlai
C, perché lo fai ?! – c1646091