通过本文主要向大家介绍了c++ reference,c++标准库,c++标准程序库,c++标准模板库,c++标准库函数手册等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
1、右值引用引入的背景
临时对象的产生和拷贝所带来的效率折损,一直是C++所为人诟病的问题。但是C++标准允许编译器对于临时对象的产生具有完全的自由度,从而发展出了CopyElision、RVO(包括NRVO)等编译器优化技术,它们可以防止某些情况下临时对象产生和拷贝。下面简单地介绍一下CopyElision、RVO,对此不感兴趣的可以直接跳过:
(1)CopyElision
CopyElision技术是为了防止某些不必要的临时对象产生和拷贝,例如:
(2)xvalue(eXpiringvalue)字面意思可理解为生命周期即将结束的值,它是某些涉及到右值引用的表达式的值(Anxvalueistheresultofcertainkindsofexpressionsinvolvingrvaluere
临时对象的产生和拷贝所带来的效率折损,一直是C++所为人诟病的问题。但是C++标准允许编译器对于临时对象的产生具有完全的自由度,从而发展出了CopyElision、RVO(包括NRVO)等编译器优化技术,它们可以防止某些情况下临时对象产生和拷贝。下面简单地介绍一下CopyElision、RVO,对此不感兴趣的可以直接跳过:
(1)CopyElision
CopyElision技术是为了防止某些不必要的临时对象产生和拷贝,例如:
(2)xvalue(eXpiringvalue)字面意思可理解为生命周期即将结束的值,它是某些涉及到右值引用的表达式的值(Anxvalueistheresultofcertainkindsofexpressionsinvolvingrvaluere