コード:
class Base{
enum eventTypes{ EVENT_SHOW };
std::map<int, boost::function<bool(int,int)> > m_validate;
virtual void buildCallbacks();
bool shouldShowEvent(int x, int y);
};
void Base::buildCallbacks(){
m_validate[ EVENT_SHOW ] = boost::bind(&Base::shouldShowEvent,this);
}
次のエラーが表示されます。
In base.cxx
return (p->*f_);
Error: a pointer to a bound function may only be used to call
the function (boundfuncalled)
エラーが何を言っているのかわかりました。バインドされたメンバー関数を呼び出す以外に何もすることはできませんが、どうすればその問題を回避できますか? なぜこれが機能しないのかわかりません。