c++ - lambda常数?

标签 c++ functional-programming constants c++11

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

[&] -> ret_t { return 0; }

捕获常量引用有意义吗?

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

从根本上解决手头的问题; 有没有办法检测给定的 lambda 是否作为 std::function<> 传递?没有副作用吗?

最佳答案

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

如果你想确保你写的 lambda 函数没有副作用(在可以保证的范围内),唯一的方法就是不捕获任何东西:[].

关于c++ - lambda常数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7694784/

相关文章:

c++ - 如何延迟初始化全局变量?

c++ - 如果功能有副作用,可以优化掉吗?

c++ - 组织客户端-服务器游戏中的代码

java - 映射getOrDefault VS getOrUseSupplier

Haskell: "where"子句中的类型变量与其父项位于同一命名空间中吗?

c++ - C++ 中 const 的优点?

php - 我可以在 PHP 类上定义 CONST 吗?

c++ - 如果不需要日志输出,如何避免计算日志函数的参数

c++ - QList::at() 返回对常量的引用?

java - 对函数的澄清 - 它是一种属性、特殊代码、过程/例程的另一种说法还是有多个定义?