https://stackoverflow.com/a/3601661/368896 and others provide a definition of lvalue
and rvalue
(referencing the standard), as well as xvalue
, glvalue
, and prvalue
.
However, the definition of rvalue
refers to the definition of xvalue
, and the definition of xvalue
refers to "the result of certain kinds of expressions involving rvalue references".
Therefore, to understand the technical definition of rvalue
, one must determine which kinds of "expressions involving rvalue references" are referred to in the above definition. I have taken the time to attempt to follow the standard (and different postings) to track through this definition. I would like a definition that does not require tracking through other definitions (except for more obvious, lower-level definitions).
Is this a wild goose chase? Is it possible to provide a concise, but rigorous, definition of the difference between an rvalue expression and an lvalue expression, that covers all possible cases, and that does not make reference to "the result of certain kinds of expressions involving rvalue references"? If so, what is such a definition?