什么是命名对象?

时间:2010-01-08 05:34:13

标签: c++

在谈论返回值优化(RVO)时,各种文本都提到了与命名对象的返回相关的异常情况。简而言之:

  • 他们是什么?
  • 当前的c ++标准中是否有此术语的定义?

旁注:我试图添加以下标签:RVO和NRVO,但由于缺乏声誉点,我无法正确使用此帖子

1 个答案:

答案 0 :(得分:5)

命名对象就像听起来一样:

  someclass foo() {
    someclass foo;
    foo.member = 42;
    return foo;
  }

相反:

  someclass foo() {
    return someclass(42);
  }

后一种情况很容易优化。