int &&i = ; //i绑定到了右值1 int b = ; cout << i << endl; //输出1 i = b; cout << i << endl; //输出2 为了支持移动操作(包括转移构造函数和转移赋值函数),C++引入了一种新的引用类型——右值引用,使用右值引用的代码可以自由的接管所引用对象的内容. 左值引用绑定的是返回左值引用的函数.赋值.下标.解引用.前置递增递减:右值只能绑定到临时对象,所引用的对象将要销毁或该对…
C++0x标准出来很长时间了,引入了很多牛逼的特性[1].其中一个便是右值引用,Thomas Becker的文章[2]很全面的介绍了这个特性,读后有如醍醐灌顶,翻译在此以便深入理解. 目录 概述 move语义 右值引用 强制move语义 右值引用是右值吗? move语义与编译器优化 完美转发:问题 完美转发:解决方案 Rvalue References And Exceptions The Case of the Implicit Move Acknowledgments and Further…