摘要:
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;语句.. 阅读全文