C++:RVO

来自WHY42
imported>Soleverlee2016年8月3日 (三) 01:10的版本 (以“RVO即Return Value Optimization,是一种编译器优化技术,可以把通过函数返回创建的临时对象给”去掉”,然后可以达到少调用拷...”为内容创建页面)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

RVO即Return Value Optimization,是一种编译器优化技术,可以把通过函数返回创建的临时对象给”去掉”,然后可以达到少调用拷贝构造的操作。

NRVO,即Named Return Value Optimization,简单的来说是这样的一种情况:

class BigObject { };

BigObject foo() {

   return BigObject(); // RVO

}

BigObject bar() {

  BigObject localObj;
  return localObj; // NRVO

}

作者:蓝色 链接:http://www.zhihu.com/question/32237405/answer/55440484 来源:知乎 著作权归作者所有,转载请联系作者获得授权。

refer