constexpr 对 Lambda 函数的支持
constexpr 对 lambda 函数的支持一直是 C 社区中广泛讨论的话题。尽管根据 [expr.const]/(2.6) 目前在常量表达式中不允许使用 lambda,但工作草案 N4582 中包含的 N4487 建议删除此限制。
建议的 lambda-相关更改:
示例:
一旦接受 N4487,以下示例将有效:
<code class="c++">struct Test { static const int value = []() constexpr { return 0; } (); };</code>
解决方法:
作为正式添加 constexpr 支持之前的解决方法,您可以使用函数模板而不是 lambda:
<code class="c++">struct Test { template <typename> static const int value = 0; };</code>
以上是Lambda 函数可以在 `constexpr` 上下文中使用吗?的详细内容。更多信息请关注PHP中文网其他相关文章!