GCC 的“vstring”是什么?

2024-04-12

我读了一些 GCC 错误报告,那里的人在谈论“vstring”。搜索网络我注意到http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.2/vstring_8h.html http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.2/vstring_8h.html .

有人可以详细说明它的用途和用途吗?为什么使用它而不是 std::string ?


GCC's vstring是一个通用的字符串类,在 GCC 4.1 中引入libstdc++执行。

它兼容std::basic_string,以及这些附加详细信息:

  • Two base classes are provided:
    • 默认值避免引用计数并针对短字符串进行了优化;
    • 另一种方法仍然使用它(即引用​​计数),同时在一些低级别领域(例如对齐)进行改进。看vstring_fwd.h一些有用的 typedef。
  • 各种算法已被重写(例如替换),代码已精简并添加了简单的优化。
  • DR 431 的选项 3 在两个可用基础上实现,从而改善了对有状态分配器的支持。

DR431 是库工作组缺陷报告 431 http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#431,选项 3 看起来像是为类实现更好的分配器支持,以允许更好的交换和其他与分配器相关的操作。

基本细节来自GCC 4.1 的发行说明 http://gcc.gnu.org/gcc-4.1/changes.html,在运行时库部分下。

edit:

看起来这个扩展的最初目的是为 C++11 提供基础std::string执行。 Paolo Carlini,GCC/libstdc++ 贡献者,在此发表评论GCC 错误报告 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52938#c8 that <ext/vstring.h>包含下一个的非引用计数实验版本std::string。 2012 年 4 月 12 日的评论:

我们试图解释的是,此类问题是众所周知的,并且或多或少 少了,影响any引用计数的实现...当不使用引用计数时情况并非如此,事实上它会not是 在新的实现中使用(根据新的 C++11 标准)std::string哪个 我们目前展示的是<ext/vstring.h>...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GCC 的“vstring”是什么? 的相关文章

随机推荐