<glvalue> type of the most derived object ([intro.object]) to which the
glvalue denoted by a glvalue expression refers
[ Example:
if a pointer ([dcl.ptr]) p whose static type is “pointer to
class B” is pointing to an object of class D, derived
from B (Clause [class.derived]), the dynamic type of the
expression *p is “D.” References ([dcl.ref]) are
treated similarly.
— end example ]