我正在使用 SDL,并且正在尝试提供指向事件过滤器的函数指针。如果我使函数成为 的静态成员,这很好用ObjectWithState
,但我想让回调函数改变对象的状态。我希望使用仿函数来做到这一点,但我无法完全解决。
我可以使用任何 C++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 );
}