[Bug c++/60417] [DR 1518] Bogus error on C++03 aggregate initialization

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 27 19:48:00 GMT 2014


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60417

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Still a regression for aggregate-initialization of arrays:

struct A { explicit A(int = 0); };

int main()
{
  A a[1] = { };
}

zzz.cc: In function ‘int main()’:
zzz.cc:5:14: error: converting to ‘A’ from initializer list would use explicit
constructor ‘A::A(int)’
   A a[1] = { };
              ^

And similarly for array members that are list-initialized:

struct A { explicit A(int = 0); };
struct B { A a[1]; B() : a{} {} };

int main()
{
  B b;
}

zz.cc: In constructor ‘B::B()’:
zz.cc:2:28: error: converting to ‘A’ from initializer list would use explicit
constructor ‘A::A(int)’
 struct B { A a[1]; B() : a{} {} };
                            ^


More information about the Gcc-bugs mailing list