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