If r represents a variable,
then either that variable is usable in constant expressions
or its lifetime began within the core constant expression currently under evaluation.
r represents a non-static data member with type X,
that is not a bit-field,
that is a direct member of class C,
T and X C::* are similar types ([conv.qual]), and
is_convertible_v<X C::*, T> is true;