左值

左值表示式是具有標識但不能隱式移動的表示式。其中包括變數名,函式名,內建解引用運算子使用的表示式和引用左值引用的表示式。

典型的左值只是一個名稱,但左值也可以有其他風格:

struct X { ... };

X x;         // x is an lvalue
X* px = &x;  // px is an lvalue
*px = X{};   // *px is also an lvalue, X{} is a prvalue

X* foo_ptr();  // foo_ptr() is a prvalue
X& foo_ref();  // foo_ref() is an lvalue

此外,雖然大多數文字(例如 4'x'等)都是 prvalues,但字串文字是左值。