In an unevaluated operand, a non-static class member can be
named ([expr.prim.id]) and naming of objects or functions does not, by
itself, require that a definition be provided ([basic.def.odr]).
If the expression is an lvalue of
class type, it must have a volatile copy constructor to initialize the
temporary object that is the result object of the lvalue-to-rvalue
conversion.
— end note]
The glvalue expression is evaluated and its value is discarded.