给定 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)方式。