J'utilise boost (signals + bind) et C++ pour passer la référence de fonction. Voici le code:Problème de fonction de liaison
#define CONNECT(FunctionPointer) \
connect(bind(FunctionPointer, this, _1));
J'utilise cela comme ceci:
class SomeClass {
void test1() {}
void test2(int someArg) {}
SomeClass() {
CONNECT(&SomeClass::test1);
CONNECT(&SomeClass::test2);
}
};
fonction de test de liaison Second oeuvre (test2), parce qu'il a au moins un argument. Avec le premier test, j'ai une erreur:
‘void (SomeClass::*)()’ is not a class, struct, or union type
Pourquoi je ne peux pas passer des fonctions sans arguments?
D'accord, j'udnerstand. Je sais que les macros sont mauvaises, mais le corps de mes macros est grand et laid. Bien sûr, si ce serait comme mon échantillon, je l'utiliserais. Merci. – Ockonal