cpp/types/is pointer interconvertible base of

If is unambiguously derived from  and every  object is pointer-interconvertible with its  subobject, or if both are the same non-union class (in both cases ignoring cv-qualification), provides the member constant  equal to. Otherwise is.

If both and  are non-union class types, and they are not the same type (ignoring cv-qualification),  shall be a complete type; otherwise the behavior is undefined.