给定 a vector<Object>
,其中 Object 有一个 function run()
,有没有办法只使用 std 函数/模板来调用run()
a ?for_each
请注意,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)方式。