// PR c++/116276 // { dg-do compile { target c++23 } } template struct Base1 { Base1(); Base1(T); }; template struct Base2 { Base2(); Base2(T*); }; template struct Derived : public Base1, Base2 { using Base1::Base1; using Base2::Base2; }; using ty1 = decltype(Derived{}); using ty1 = Derived; using ty2 = decltype(Derived{true}); using ty2 = Derived; using ty3 = decltype(Derived{(char*)nullptr}); using ty3 = Derived; template struct Derived2 : public Base1, Base2 { using Base1::Base1; using Base2::Base2; Derived2(); Derived2(T); }; using ty4 = decltype(Derived2{}); using ty4 = Derived2; using ty5 = decltype(Derived2{true}); using ty5 = Derived2; using ty6 = decltype(Derived2{(char*)nullptr}); using ty6 = Derived2;