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



             Bug #: 54835

           Summary: [C++11] Explicit default constructors not respected

                    during copy-list-initialization

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: daniel.krueg...@googlemail.com





gcc 4.8.0 20120930 (experimental) with the compiler flags



-Wall -pedantic -std=c++11 



accepts the following copy-list-initialization of a class type with an explicit

default constructor:



//-------------------------

struct S {

  explicit S(int = 0) {}

};



S s = {};

//-------------------------



This code should be ill-formed, because it is ruled out by [over.match.list],

in particular by the unconditional wording:



"In copy-list-initialization, if an explicit constructor is chosen, the

initialization is ill-formed."

Reply via email to