C++ xvalor


Ejemplo

Una expresión xvalue (valor eXpiring) es una expresión que tiene identidad y representa un objeto desde el cual se puede mover implícitamente. La idea general con las expresiones xvalue es que el objeto que representan se destruirá pronto (de ahí la parte "inspiradora"), y por lo tanto, mudarse de forma implícita está bien.

Dado:

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