根据n4487和其他c ++ 17引用,将会有新的lambda函数说明符 - constexpr
如果存在,则"明确指定函数调用运算符是一个constexpr
函数." .我理解lambda中常量表达式的动机.对我来说有趣的是提案的第4点,其中指出:
4)如果
constexpr
在lambda声明符中省略了说明符,则函数调用运算符(或模板)constexpr
是否满足constexpr
函数的要求.
这引出了两个问题:
constexpr
说明符?看起来lambda调用操作符是否将constexpr
取决于它"满足constexpr
函数的要求"的事实,而不是来自 constexpr
说明符的存在.constexpr
默认情况下可以接受lambda,那么为什么不建议其他类型的函数 - 例如全局函数?如果编译器开始处理涵盖需求的所有函数,会产生什么影响constexpr
?