长路漫漫

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年11月19日

摘要: 1、右值引用引入的背景临时对象的产生和拷贝所带来的效率折损,一直是C++所为人诟病的问题。但是C++标准允许编译器对于临时对象的产生具有完全的自由度,从而发展出了Copy Elision、RVO(包括NRVO)等编译器优化技术,它们可以防止某些情况下临时对象产生和拷贝。下面简单地介绍一下Copy Elision、RVO,对此不感兴趣的可以直接跳过:(1) Copy ElisionCopy Elision技术是为了防止某些不必要的临时对象产生和拷贝,例如:struct A { A(int) {} A(const A &) {}};A a = 42;理论上讲,上述A a = 42;语句.. 阅读全文
posted @ 2012-11-19 13:41 opangle 阅读(6413) 评论(9) 推荐(7) 编辑