gpt4 book ai didi

c++ - boost::function 对象容器上的 STL 算法

转载 作者:行者123 更新时间:2023-11-30 01:32:08 27 4
gpt4 key购买 nike

我有以下使用 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)();
}

最佳答案

我设法弄清楚了第 2 部分:

typedef boost::function<void(void)> NullaryFunc;
for_each(callbacks_.begin(),callbacks_.end(),boost::bind(&NullaryFunc::operator(),_1));

关于c++ - boost::function 对象容器上的 STL 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2001215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com