// Testcase from P0136 // { dg-do compile { target c++11 } } // { dg-options -fnew-inheriting-ctors } struct A { A(int); }; struct B : A { using A::A; }; struct C1 : B { using B::B; }; struct C2 : B { using B::B; }; struct D1 : C1, C2 { using C1::C1; using C2::C2; }; struct V1 : virtual B { using B::B; }; struct V2 : virtual B { using B::B; }; struct D2 : V1, V2 { using V1::V1; using V2::V2; }; D1 d1(0); // { dg-error "" } ambiguous D2 d2(0); // OK: initializes virtual B base class, which initializes the A base // class then initializes the V1 and V2 base classes as if by a // defaulted default constructor