我有以下使用 for 循环的代码,我想使用转换,或者至少使用 for_each,但我不知道如何。
typedef std::list<boost::function<void(void) > CallbackList;
CallbackList callbacks_;
//...
for(OptionsMap::const_iterator itr = options.begin(); itr != options.end(); ++itr)
{
callbacks_.push_back(boost::bind(&ClassOutput::write_option_,this,*itr));
}
稍后在代码中,我实际上想调用这个空函数对象的集合。我在这里也使用了 for 循环,似乎我应该能够以某种方式使用 for_each。
for(CallbackList::iterator itr = callbacks_.begin(); itr != callbacks_.end(); ++itr)
{
(*itr)();
}