如何在Visual Studio 2010中禁用返回值优化?

Gor*_*ran 9 c++ visual-studio-2010 visual-studio return-value-optimization

是否可以在Visual Studio 2010中禁用RVO(返回值优化)?将优化标志设置为/Od(关闭所有优化)并没有帮助.在g ++中,存在-fno-elide-constructors禁用RVO的标志.

Pup*_*ppy 8

你不能.就是这么简单.RVO/NRVO是标准的,您的代码不应该依赖于它不存在.

  • 据我所知,RVO/NRVO不是**标准(参见C++ 0x标准,第12.8节.复制和移动类对象,第32段).标准只允许这样的优化(g ++和VisualStudio实现它).对于那件事我没有任何疑问.但是有一些开关来禁用它会很好.出于教育目的可能.谢谢,现在更清楚了:) (3认同)
  • 允许!=要求.因此它不是标准的一部分,它只是不会违反标准. (3认同)