首页 > 后端开发 > C++ > C 11 中的写时复制 std::string 实现合法吗?

C 11 中的写时复制 std::string 实现合法吗?

Barbara Streisand
发布: 2024-12-20 00:43:09
原创
920 人浏览过

Is a Copy-on-Write std::string Implementation Legal in C  11?

C 11 中的 Copy-on-Write (COW) std::string 实现的合法性

尽管人们可能认为 COW不是在 C 11 中实现兼容的 std::string 的可行技术,最近的讨论带来了不确定性。下面根据新标准探讨这个假设的有效性。

C 11 中禁止基于 COW 的 std::string 实现

C 11 明确禁止 COW基于 std::string 的实现。此限制在标准的第 21.4.1 p6 节中进行了说明,它仅在特定情况下允许迭代器/引用无效:

  • 作为标准库函数的参数,该函数接受对非-const basic_string.
  • 调用非常量成员函数,不包括operator[]、at、front、back、begin、rbegin、end和rend.

在 COW 字符串中,调用非常量运算符 [] 需要创建一个副本(使引用无效),这是上述段落所禁止的。因此,由于这一限制,C 11 中禁止使用 COW 字符串。

以上是C 11 中的写时复制 std::string 实现合法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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