C++ xValue


Esempio

Un'espressione xvalue (valore eXpiring) è un'espressione che ha identità e rappresenta un oggetto da cui può essere implicitamente spostato. L'idea generale con le espressioni xvalue è che l'oggetto che rappresentano sarà presto distrutto (da qui la parte "eXpiring"), e quindi spostarsi implicitamente da esse va bene.

Dato:

struct X { int n; };
extern X x;

4;                   // prvalue: does not have an identity
x;                   // lvalue
x.n;                 // lvalue
std::move(x);        // xvalue
std::forward<X&>(x); // lvalue
X{4};                // prvalue: does not have an identity
X{4}.n;              // xvalue: does have an identity and denotes resources
                     // that can be reused