【发布时间】:2010-02-24 05:42:31
【问题描述】:
阅读this Wikipedia 文章,其中一位回复者指出了以下问题:
C++ Copy constructor, temporaries and copy semantics
我遇到了这条线
根据编译器和编译器的设置,生成的程序可能会显示以下任何输出:
这不符合未定义的行为吗?我知道这篇文章说Depending on the compiler and settings,但我只是想澄清一下。
【问题讨论】:
-
有实现定义,其中编译器实现者必须记录行为,然后这里未指定,这意味着只要“可观察行为”保持不变,编译器就可以做任何它想做的事情。然后是未定义的行为,这意味着您在程序中进入了不再定义其执行的状态。 RVO 是一种允许改变可观察行为的情况。
标签: c++ return-value-optimization