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

Daniel Krügler <daniel.kruegler at googlemail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |daniel.kruegler at
                   |                            |googlemail dot com

--- Comment #1 from Daniel Krügler <daniel.kruegler at googlemail dot com> 
2012-07-24 11:00:23 UTC ---
Strictly speaking you are right that this should be ill-formed as of the C++11
wording. This is due to the fact that [dcl.init.aggr] p11 allows brace-elision
*only* for the specific initializer form

S2 s22 = { 3, "Hello3", 4,"Hello4" };  

(Note the '=' sign). But there is a core-issue

http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1270

that has now ready state and that will make the code example well-formed again.
This new rule has already been implemented by gcc and I don' think that this
should be changed. Note also, that by using the good old aggregate
initialization

S2 s22 = { 3, "Hello3", 4,"Hello4" };  

mentioned above is OK even even in C++03, so I think that the 1270 P/R is just
the right way to ensure more consistency.

Reply via email to