C++ 左值
示例
左值表达式是具有标识但不能隐式移出的表达式。其中包括由变量名,函数名,内置的取消引用运算符使用的表达式以及引用左值引用的表达式。
典型的左值只是一个名称,但是左值也可以采用其他形式:
struct X { ... }; X x; //x是一个左值 X* px = &x; //px是左值 *px = X{}; //*px也是左值,X{}是右值 X* foo_ptr(); //foo_ptr()是一个prvalue X& foo_ref(); //foo_ref()是一个左值
另外,虽然大多数文字(例如4,'x'等)是prvalues,但是字符串文字是lvalues。