C++ lvalue


Esempio

Un'espressione lvalue è un'espressione che ha identità, ma non può essere spostata implicitamente da. Tra queste sono espressioni che consistono in un nome di variabile, nome di funzione, espressioni che sono usi di operatore di deferenziazione ed espressioni che si riferiscono a riferimenti di lvalue.

Il lvalue tipico è semplicemente un nome, ma i lvalue possono venire anche in altri gusti:

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

Inoltre, mentre la maggior parte dei valori letterali (ad es. 4 , 'x' , ecc.) Sono prvalues, i letterali stringa sono lvalue.