小编Aah*_*zbg的帖子

Constexpr lambda默认情况下?

根据n4487和其他c ++ 17引用,将会有新的lambda函数说明符 - constexpr如果存在,则"明确指定函数调用运算符是一个constexpr函数." .我理解lambda中常量表达式的动机.对我来说有趣的是提案的第4点,其中指出:

4)如果constexpr在lambda声明符中省略了说明符,则函数调用运算符(或模板)constexpr是否满足constexpr函数的要求.

这引出了两个问题:

  1. 为什么我们需要constexpr说明符?看起来lambda调用操作符是否将constexpr取决于它"满足constexpr函数的要求"的事实,而不是来自 constexpr说明符的存在.
  2. 如果constexpr默认情况下可以接受lambda,那么为什么不建议其他类型的函数 - 例如全局函数?如果编译器开始处理涵盖需求的所有函数,会产生什么影响constexpr

c++ lambda constexpr c++17

10
推荐指数
1
解决办法
638
查看次数

标签 统计

c++ ×1

c++17 ×1

constexpr ×1

lambda ×1