If E2 is a non-static data member or a non-static member
function, the program is ill-formed if the class of which E2 is
directly a member is an ambiguous base ([class.member.lookup]) of
the naming class ([class.access.base]) of E2.
If the class member
access expression is evaluated, the subexpression evaluation happens even if the
result is unnecessary to determine
the value of the entire postfix expression, for example if the
id-expression denotes a static member.