1 // A constructor that might or might not be constexpr still makes 2 // its class literal. 3 // { dg-do compile { target c++11 } } 4 5 template <class T> 6 struct B 7 { BB8 constexpr B(T) { } BB9 constexpr B() {} 10 }; 11 12 struct A 13 { 14 B<A> b; 15 }; 16 17 constexpr A a {}; 18 19 template <class T> 20 struct C 21 { CC22 constexpr C(T) { } CC23 C() {} 24 }; 25 26 struct D 27 { 28 C<D> c; 29 }; 30 31 constexpr D d {}; // { dg-error "non-.constexpr. function" } 32