Я играю с SDL и пытаюсь указать указатель на функцию для фильтра событий. Это прекрасно работает, если я делаю функцию статическим членом ObjectWithState
, но я бы хотел, чтобы функция обратного вызова изменяла состояние объекта. Я надеялся сделать это, возможно, с помощью функтора, но я не могу это понять.
Есть ли какой-нибудь трюк С++ 11, который я могу использовать для этой работы?
class ObjectWithState
{
int someState;
public:
int operator()(void* userData, SDL_Event *event)
{
return ++someState;
}
};
int main()
{
//boilerplate
ObjectWithState obj;
SDL_EventFilter f = &(obj.operator()); //ERROR -> cannot create non-constant pointer to member function
SDL_SetEventFilter( f, nullptr );
}
operator()
на самом деле не возвращаетint
, как было объявлено. - person Casey   schedule 13.11.2013