This issue was approved as a DR at Kona 2019: template<typename A, typename B> struct check_derived_from { static A a; static constexpr B *p = &a; }; struct W {}; struct X {}; struct Y {}; struct Z : W, X, check_derived_from<Z, X>, // #1 check_derived_from<Z, Y>, Y { // #2 check_derived_from<Z, W> cdf; // #3 }; All three attempted conversions in the example are ill-formed.
Confirmed.