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

Consteval 函数能否使依赖于函数参数的模板参数中的函数参数合法化?

Patricia Arquette
发布: 2024-10-24 03:53:30
原创
428 人浏览过

Can Consteval Functions Legalize Function Parameters in Template Parameters Dependent on Function Arguments?

Consteval 函数:依赖于函数参数的模板参数的限制

在 C 17 中,定义依赖于函数的模板参数的 constexpr 函数禁止争论。虽然 C 20 中的 consteval 函数承诺强制执行编译时求值,但这是否意味着此类代码现在可以合法化?

问题:

consteval int foo(int i) { 返回 std::integral_constant::value; }。此代码在 C 20 中有效吗?

答案:

否。

解释:

尽管引入了 consteval 函数,但基本原则仍然是非模板函数定义具有单点类型解析。拟议代码的合法化将对单一定义规则(ODR)产生影响。此外,C 20 论文明确指出,由于潜在的类型不匹配,函数参数不会被视为核心常量表达式。

因此,函数参数不能直接用作模板参数依赖项中的常量表达式,甚至在 consteval 函数上下文中。

以上是Consteval 函数能否使依赖于函数参数的模板参数中的函数参数合法化?的详细内容。更多信息请关注PHP中文网其他相关文章!

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