[Bug libstdc++/58764] [4.9 Regression] [lwg/2193] error: converting to ‘const std?=::vector<std::basic string<char> >=?UTF-8?Q?’ from initializer list would use explicit constructor

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 9 12:55:00 GMT 2014


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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|SUSPENDED                   |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |redi at gcc dot gnu.org

--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Marc Glisse from comment #5)
> (In reply to Paolo Carlini from comment #4)
> > Ok, let's wait a bit more, possibly until the next meeting,
> 
> The next meeting will be too late for 4.9, so that means sticking to what we
> have now.

"What we have now" for most users is what we shipped in all previous releases
up to 4.8, which allows this:

  std::vector<int> v = {};

Rejecting that is a pretty serious regression.

The explicitness of the container constructors had already been questioned by
LWG 2193 when we made the change, so I consider it a mistake to make an
breaking change to conform to wording that is potentially defective.

I'm going to restore the previous constructors (so 4.9 will stick with what we
have now) until the DR is resolved one way or another.



More information about the Gcc-bugs mailing list