[关闭]
@CrazyHenry 2018-02-04T22:00:22.000000Z 字数 488 阅读 1300

6.x C++函数返回值优化

ccccC++Primer


命名返回值优化(NRVO)

具体来说,就是一个函数的返回值如果是一个对象。那么,正常的返回语句的执行过程是,把这个对象从当前函数的局部作用域,或者叫当前函数的栈空间,拷贝到返回区,使得调用者可以访问。然后程序从当前函数中返回到上一层,即该函数的调用语句处,通过访问返回区的对象,来执行调用语句所在的一整个语句。

当这个函数中所有的返回语句全部是这一个对象的话,那么,命名返回值优化的作用就是,在这个对象建立的时候,直接在返回区建立。这样就使得函数返回时不需要调用拷贝构造函数了,减少了一个对象的创建与销毁过程。

还有1种优化方式,未命名返回值优化(RVO)。现在还不需要详细了解,列出一些已知的资源:

C++中的返回值优化

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注