Lambda 函数和 Constexpr
问题: 是否可以在 C 中将 constexpr 与 lambda 函数一起使用?
在以下代码示例中,编译器报告与需要 constexpr 函数相关的错误:
<code class="cpp">struct Test { static const int value = []() -> int { return 0; } (); };</code>
答案:
更新 ( C 17): 从 C 17 开始,常量表达式中允许使用 lambda 函数。
C 17 之前的版本: 目前,C 14 中的常量表达式中不允许使用 lambda。 ,已提出一项提案 (N4487),允许某些 lambda 表达式和闭包对象出现在常量表达式中。
如果该提案被接受,它将引入以下更改:
此更改将与隐式定义的构造函数和赋值运算符函数的行为保持一致,在适当的情况下可以将其推断为 constexpr。
以上是Lambda 函数可以与 C 中的 `constexpr` 一起使用吗?的详细内容。更多信息请关注PHP中文网其他相关文章!