【发布时间】:2012-09-13 06:23:07
【问题描述】:
当使用 gcc 4 和 -std=c++0x 或 -std=c++11 时,std::string 引用计数了吗?
【问题讨论】:
-
这是一个有点笼统的问题。你可能有一个特定的版本,你肯定可以检查标题中的实现......
-
我相信 C++11 引入了使写时复制成为不可能的要求,从而消除了对引用计数的需求,但我不记得我在哪里听说过。
-
@nosid 如果你能证明(标题或 gcc 邮件列表讨论等)你应该写一个答案而不是评论,这样你就可以得到支持;)
-
我认为您可以设置一个宏来获取非引用字符串,例如
FULLY_DYNAMIC_STRINGS左右。库维护者不愿意切换的原因是它会破坏与之前编译的代码的二进制兼容性。 -
@DrewDormann:嗯,也许吧,但 GCC 从来没有进行过小字符串优化。不过,我必须检查一下。