我读了一些 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(使用前将#替换为@)