右值引用(Rvalue reference)和移动语义(Move semantics)
左值(lvalue)和右值(rvalue)
左值(也称为 locator value)
- 是一个可以被修改的存储位置,指向内存中的某个位置
- 例子:变量、数组元素、解引用指针等
判断左值的方法是:
- 能够获得这个表达式的引用
- 或者取地址
右值
C++ 11后(表达式不再简单地分为 左值、右值,看上去比较复杂)
分为2大类:
- Glvalue:泛左值
- lvalue
- xvalue(expirnig value):即将消亡的值
- Prvalue:纯右值
- xvalue
- prvalue
l-value
此外,类的数据成员也是左值
还有一个比较常见的是:返回引用的函数
prvalue(纯右值 Pure R-value)
1
1