A null pointer constant ([conv.ptr]
) can be converted to a
type; the result is the null member pointer value
of that type and is distinguishable from any pointer to member not
created from a null pointer constant.
Two null member pointer values of
the same type shall compare equal.
The conversion of a null pointer
constant to a pointer to member of cv-qualified type is a single
conversion, and not the sequence of a pointer-to-member conversion
followed by a qualification conversion.
A prvalue of type “pointer to member of B
of type cv
”, where B
is a class type, can be converted to
a prvalue of type “pointer to member of D
of type cv
”, where D
is a derived class ([class.derived]
, or virtual
class of D
, or a base class of a virtual base class of
, a program that necessitates this conversion is ill-formed.
The result of the conversion refers to the same member as the pointer to
member before the conversion took place, but it refers to the base class
member as if it were a member of the derived class.
The result refers to
the member in D
's instance of B.
Since the result has
type “pointer to member of D
of type cv T
indirection through it with a D
object is valid.
The result is the same
as if indirecting through the pointer to member of B
subobject of D.
The null member pointer value is
converted to the null member pointer value of the destination