【发布时间】:2012-11-09 18:03:58
【问题描述】:
我正在完成一个自定义字符串类的开发。当然,它旨在等同于 basic_string ,并为其预期目的定制内部存储。我正在寻找一个测试工具,可以让它通过与 C++ 标准相关的步伐。我已经看到 libstdc++ 有一个测试套件。但是,我一直找不到它。
【问题讨论】:
-
为什么不使用
char_traits和带有basic_string的语言环境,而不是自己重写所有字符串? -
“为预期目的定制的内部存储”是什么意思?
char_traits对我解释该短语的大多数方式都无济于事,但allocator可能。 -
我们已经使用自定义版本的 basic_string。有一些原因 - 有些好,有些可能不好。尽管如此,它工作得很好,并提供了有用的好处。在任何情况下,类都允许字符串使用不同的“内部存储模型”,例如,常见的简单向量
、某些 Microsoft 版本所做的小字符串优化、“写入时复制”优化,或者在我的情况下,本质上是vector 的链表。 basic_string 是/应该与所有这些无关。我的案例需要自定义迭代器,而我想要测试的正是这些迭代器。 -
@Hamp 请注意,在 C++11 中,它们最终要求存储是连续的,因为它对于向量来说是连续的,因此您的大多数选项在技术上将不再符合要求(这并不意味着你仍然不能使用它们)。
标签: c++ string testing stdstring