【发布时间】:2012-10-01 06:44:53
【问题描述】:
给定一个vector<Object>,其中Object 有一个函数run(),有没有办法在for_each 中调用run(),只使用std 函数/模板?
注意run()不是静态函数,它实际上应该转换被引用的对象(当然在我的小例子中不是这样)
我知道boost::lambda的方式
class Object
{
public:
int run(){/* change object state */}
};
vector<Object> v(10);
for_each(v.begin(), v.end(), bind(&Object::run, _1));
但我很好奇这是否是一种标准(非 Cxx11)方式。
【问题讨论】:
标签: c++ boost lambda foreach std