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 original 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 temporary materialization conversion.
— end note]
The expression is evaluated and its result (if any) is discarded.