Android之性能监控框架
[TOC]
概述
概述
想要了解C++11特性里面的move函数的使用和原理,我们先要了解一下左值和右值
左值和右值
左值与右值的根本区别在于是否允许取地址&运算符获得对应的内存地址。
一般来说,变量可以取地址,所以是左值,但是常量和临时对象等不可以取地址,所以是右值。
左值的声明符号为&,右值的声明符号为&&。
我们可能在各种场合(初始化,push_back,函数返回等)调用拷贝构造函数将一个临时对象初始化给另一个对象,而这时如果是深拷贝则代价会比较大。
深拷贝对程序的影响比较大,把临时对象的内容直接移动(move)给被赋值的左值对象,效率改善将是显著的。这就产生了移动语义,右值引用是用来支持转移语义的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 麦溪·在路上!
评论
ValineDisqus