Sam*_*Sam 4 c++ foreach lambda boost std
给定一个vector<Object>,在那里对象有一个功能run(),有没有办法来调用run()的for_each,只使用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));
Run Code Online (Sandbox Code Playgroud)
但我很好奇它是否是一种标准(非Cxx11)方式.
有(C++)方式:
for_each(v.begin(), v.end(), mem_fun_ref(&Object::run));
Run Code Online (Sandbox Code Playgroud)
见http://www.cplusplus.com/reference/std/functional/mem_fun_ref/
| 归档时间: |
|
| 查看次数: |
1655 次 |
| 最近记录: |