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

std::string 可以在 C 中的常量表达式中使用吗?

Linda Hamilton
发布: 2024-11-23 16:43:22
原创
161 人浏览过

Can std::string Be Used in a Constant Expression in C  ?

std::string 可以体现在常量表达式中吗?

在 C 11 中,在常量表达式中使用 std::string 构成挑战。然而,C 20 提供了一个解决方案,但需要注意的是,在常量求值结束之前必须破坏 std::string。

C 20 解决方案:

虽然您提供的代码片段将无法编译,以下代码将:

constexpr std::size_t n = std::string("hello, world").size();
登录后复制

C 17 替代方案:string_view

作为替代方案,C 17 引入了 string_view,一个轻量级的类似字符串的对象,用作对 char 对象序列的非拥有引用。与 std::string 不同,string_view 是不可变的,不需要销毁。这使得它非常适合在常量表达式中使用:

constexpr std::string_view sv = "hello, world";
登录后复制

以上是std::string 可以在 C 中的常量表达式中使用吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板