C++:RVO

来自WHY42

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