私が達成しようとしているのはstd::list
、が含まれていることstd::functions
です。関数をリストに追加し、リストをループして各関数を呼び出すことができるコールバック システムを実装しようとしています。
私がクラスAに持っているものは次のとおりです。
std::list<std::function<void( bool )>> m_callbacks_forward;
bool registerForward( std::function<void(bool)> f ) { m_callbacks_forward.push_back ( f ); return true; };
void GameControllerHub::invokeForward( bool state ) {
for( std::list<std::function<void(bool)>>::iterator f = m_callbacks_forward.begin(); f != m_callbacks_forward.end(); ++f ){
f();
}
}
そしてBクラスへ
std::function<void(bool)> f_move_forward = [=](bool state) {
this->moveForward(state);
};
getGameController()->registerForward ( f_move_forward );
...
bool Player::moveForward( bool state ) {
...
}
しかし、GameControllerHub::invokeForward
私はエラーが発生します
「type 'std::list >::iterator' (別名 '__list_iterator') は呼び出し演算子を提供しません」
Xcodeでコンパイルしています