http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53657
--- Comment #12 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-06-20
15:20:29 UTC ---
Possibly a front end bug, not sure.
Here's a reduced form that G++ rejects, Clang accepts:
template<typename T>
struct pair
{
constexpr pair(const pair&) = default;
pair(pair&&) = default;
pair() : t() { }
T t;
};
struct string {
string(const string&) { }
string(string&&) = default;
string() = default;
};
int main()
{
typedef pair<const string> P;
P p[] = { P(), P() };
}