7 Standard conversions [conv]

7.4 Temporary materialization conversion [conv.rval]

A prvalue of type T can be converted to an xvalue of type T. This conversion initializes a temporary object of type T from the prvalue by evaluating the prvalue with the temporary object as its result object, and produces an xvalue denoting the temporary object. T shall be a complete type. [ Note: If T is a class type (or array thereof), it must have an accessible and non-deleted destructor; see [class.dtor].  — end note ] [ Example:

struct X { int n; };
int k = X().n;      // OK, X() prvalue is converted to xvalue

 — end example ]