代码之家  ›  专栏  ›  技术社区  ›  nakiya

返回值优化(rvo)不是一个bug吗?

  •  7
  • nakiya  · 技术社区  · 14 年前

    我可能问了一个愚蠢的问题,但我在维基百科上看到了RVO。 here 不停地想知道这种行为是否是错误的。我在我的机器上尝试过,尽管优化水平很高,但RVO还是被完全启动了。如果真的有什么 大的 在一个建设者中?我知道不应该,但是如果呢?我不明白为什么当构造器中存在副作用时仍然会发生RVO。

    编辑: -fno-elide-constructors 似乎阻止了RVO。但问题仍然存在。

    伊迪丝2:更严肃地说,有多少人知道这样的事情?它可能在标准中,但它仍然是一个真正丑陋的功能,正如我所看到的。至少编译器应该在默认情况下禁用它,并为知道这一点的人提供一个开关。:)

    编辑3:我仍然坚持这是非常糟糕的。:)我不认为我知道有任何其他的语言约束,像这样直接违背了语言的语法。其他的都会引发编译器或链接器错误,对吗?

    3 回复  |  直到 14 年前
        1
  •  20
  •   sbi    14 年前

        2
  •  13
  •   DerKuchen    14 年前

        3
  •  7
  •   Helmut Grohne    14 年前