// A constructor that might or might not be constexpr still makes | |
// its class literal. | |
// { dg-do compile { target c++11 } } | |
template <class T> | |
struct B | |
{ | |
constexpr B(T) { } | |
constexpr B() {} | |
}; | |
struct A | |
{ | |
B<A> b; | |
}; | |
constexpr A a {}; | |
template <class T> | |
struct C | |
{ | |
constexpr C(T) { } | |
C() {} | |
}; | |
struct D | |
{ | |
C<D> c; | |
}; | |
constexpr D d {}; // { dg-error "non-.constexpr. function" } |