Я использую стороннюю библиотеку, которая позволяет мне регистрировать обратные вызовы для определенных событий. Функция register выглядит примерно так. Она использует подпись обратного вызова.
typedef int (*Callback)(std::string);
void registerCallback(Callback pCallback) {
//it gets registered
}
Моя проблема в том, что я хочу зарегистрировать функцию-член как обратный вызов примерно так
struct MyStruct {
MyStruct();
int myCallback(std::string str);
};
MyStruct::MyStruct() {
registerCallback(&MyStruct::myCallback);
}
int MyStruct::myCallback(std::string str) {
return 0;
}
Конечно, компилятор жалуется, говоря
об ошибке C2664: 'registerCallback': не удается преобразовать параметр 1 из 'int (__thiscall MyStruct: : *) (std :: string) 'to' Callback '
Я искал библиотеки boost, такие как function и bind, но ни одна из них, похоже, не могла помочь. Гугл, чтобы получить ответ, но я даже не знаю, как это назвать, так что это не сильно помогло.
Заранее спасибо.