If a class member access operator, including an implicit
is used to access a non-static data member or non-static
member function, the reference is ill-formed if the
left operand (considered as a pointer in the
operator case) cannot be implicitly converted to a
pointer to the naming class of the right operand.