-
右值引用: 所谓右值引用就是必须绑定到右值的引用. 我们通过 && 而不是 & 来获得右值引用. 右值引用有一个重要的性质: 只能绑定到一个将要销毁的对象.
-
左值持久, 右值短暂: 左值有持久的状态, 而右值要么是字面常量, 要么是在表达式求值过程中创建的临时对象.
-
通过调用 std::move 来获得绑定到左值上的右值引用.
int &&rr1 = 42; // 正确: 字面常量是右值
int &&rr2 = rr1; // 错误: 表达式rr1是左值
int &&rr3 = std::move(rr1); // ok