首页 > 后端开发 > C++ > 正文

Lambda 函数可以在 `constexpr` 表达式中使用吗?

Patricia Arquette
发布: 2024-11-01 01:15:28
原创
456 人浏览过

Can Lambda Functions Be Used in `constexpr` Expressions?

Constexpr 对 Lambda 函数的支持

原始问题:

lambda 函数可以使用 constexpr关键字?

响应:

在 C 14 中,constexpr 不支持 lambda 函数。然而,随着 N4487 的采用,这种情况将会改变。该提案将允许常量表达式中的 lambda 和特定闭包类型操作。

说明:

在 C 14 标准的 [expr.const]/(2.6) 下, lambda 被排除在常量表达式之外。 N4487 中概述了此限制:

“此提案建议在常量表达式中允许 **lambda 表达式**,从而删除现有限制。作者建议某些 **lambda 表达式** 和操作允许某些闭包对象出现在常量表达式中。”

此外,该提案还指出:

  • 如果闭包类型的数据成员都是文字类型,则将其视为文字类型。
  • 如果 lambda 声明符中省略了 constexpr 说明符,则只要满足 constexpr 函数的要求,生成的函数调用运算符就会变为 constexpr。此行为类似于隐式定义的构造函数和赋值运算符的 constexpr 推理。

以上是Lambda 函数可以在 `constexpr` 表达式中使用吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!