The expression is an xvalue if it is move-eligible (see below);
an lvalue
if the entity is a
function,
variable,
structured binding (
[dcl.struct.bind]),
result binding (
[dcl.contract.res]),
data member, or
template parameter object;
and a prvalue otherwise (
[basic.lval]);
it is a bit-field if the identifier designates a bit-field
.