在我工作的项目中,我看到代码与下一个非常相似:
std::string str = (std::string() += "some string") += "some other string";
由于显而易见的原因,我无法重现原始代码,但我可以说它使用 customString
并且具有与foroperator<<
相同的行为。operator+=
std::string
除了不必要的临时对象的创建/销毁之外,我觉得这里有些地方很不对劲,但我不知道到底是什么。
是临时对象const
吗?是的,这段代码如何编译(VS2010),因为operator +=
改变了对象?你能解释一下这里有什么问题吗?