1.左值和右值的概念 C++中左值(lvalue)和右值(rvalue)是比较基础的概念,虽然平常几乎用不到,但C++11之后变得十分重要,它是理解 move/forward 等新语义的基础. 左值与右值这两个概念是从 C 中传承而来的,左值指既能够出现在等号左边,也能出现在等号右边的变量:右值则是只能出现在等号右边的变量. int a; // a 为左值 a = 3; // 3 为右值 左值是可寻址的变量,有持久性: 右值一般是不可寻址的常量,或在表达式求值过程中创建的无名临时对象,短暂性的.…