In the body of a non-static ([class.mfct]) member function, the
keyword this is a prvalue whose value is
a pointer to the object for which the function is called.
The type of this in a member function
whose type has a cv-qualifier-seqcv and
whose class is X
is βpointer to cvXβ.
The call y.g() is ill-formed because y is const
and sβ::βg() is a non-const member function, that is,
sβ::βg() is less-qualified than the object expression y.