【发布时间】:2013-12-01 01:53:38
【问题描述】:
我在某处读到新标准强制移动语义在字符串类的实现中。例如,现在像 gcc 这样的编译器将字符串实现为写入时复制以提高性能,这使得通过值复制和传递字符串作为参数非常便宜。现在如果复制字符串的移动语义现在是强制性的,那不是性能损失吗?因为如果确实在范围之间传递字符串会很便宜,那么如果/当您复制字符串时,它仍然需要进行复制,对吧?。
谁能帮我澄清一下这个问题?
谢谢。
【问题讨论】:
-
我想“写时复制”可能会变成“写时移动或复制”。不过,移动字符串非常便宜,我认为任何性能损失都会很小
-
顺便说一句,C++11 中不再允许
std::string的 COW 实现。 Gcc 希望能解决这个问题。 Source.
标签: c++