我想要实现的是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
我得到错误
“类型 'std::list >::iterator'(又名 '__list_iterator')不提供呼叫运算符”
我正在用 Xcode 编译