1. 程式人生 > >C++11 左值 右值

C++11 左值 右值

在C++11中所有的值必屬於左值、右值兩者之一。

C++98
左值(lvalue),可以放在賦值運算子=左邊的變數或者表示式,有名字,可以取地址。
右值(rvalue),臨時變數值(非引用返回的函式返回值、表示式等)或者不跟物件關聯的字面量值(注意:字串字面值是左值,唯一例外),沒有名字,不能取地址。
C++11
對右值進行了擴充,右值分為純右值(prvalue,Pure Rvalue)將亡值(xvalue,eXpiring Value)
純右值就是C++98中的右值概念。
將亡值則是C++11新增的跟右值引用相關的表示式,這樣表示式通常是將要被移動的物件。

官方說明文件

Value categories