Я использую boost (сигналы + связывание) и c ++ для передачи ссылки на функцию. Вот код:
#define CONNECT(FunctionPointer) \
connect(bind(FunctionPointer, this, _1));
Я использую это так:
class SomeClass {
void test1() {}
void test2(int someArg) {}
SomeClass() {
CONNECT(&SomeClass::test1);
CONNECT(&SomeClass::test2);
}
};
Вторая привязка тестовой функции работает (test2), потому что у нее есть хотя бы один аргумент. При первом тесте у меня ошибка:
‘void (SomeClass::*)()’ is not a class, struct, or union type
Почему я не могу передавать функции без аргументов?