在C++11中所有的值必属于左值、右值两者之一。
C++98
左值(lvalue),可以放在赋值运算符=左边的变量或者表达式,有名字,可以取地址。
右值(rvalue),临时变量值(非引用返回的函数返回值、表达式等)或者不跟对象关联的字面量值(注意:字符串字面值是左值,唯一例外),没有名字,不能取地址。
C++11
对右值进行了扩充,右值分为纯右值(prvalue,Pure Rvalue)和将亡值(xvalue,eXpiring Value)
纯右值就是C++98中的右值概念。
将亡值则是C++11新增的跟右值引用相关的表达式,这样表达式通常是将要被移动的对象。
官方说明文档
本文详细解析了C++11中值类别的概念,包括左值、右值、纯右值及将亡值的区别与特性。左值是可以取地址的变量,而右值分为纯右值和将亡值,后者特指可被移动的对象。
552

被折叠的 条评论
为什么被折叠?



