lambda constness?

时间:2011-10-08 04:12:24

标签: c++ functional-programming const c++11

c ++ 0x支持通过引用捕获值的lambda:

[&] -> ret_t { return 0; }

捕获const引用是否有意义?

[const &] -> ret_t { return 0; }

更基本的是手头的问题; 有没有办法检测作为std::function<>传递的给定lambda是否没有副作用?

1 个答案:

答案 0 :(得分:2)

您甚至无法保证std::function 中的内容是是否为lambda。你当然不能保证它没有副作用。

如果你想确保你编写的lambda函数没有副作用(在可以确保这些事情的范围内),唯一的方法是不捕获任何内容:[]。< / p>