1153. Standard library needs review for constructors to be explicit to avoid treatment as initializer-list constructor

Section: 16 [library], 33 [thread], D [depr] Status: NAD Submitter: LWG Opened: 2009-06-28 Last modified: 2016-01-28 10:19:27 UTC

Priority: Not Prioritized

View other active issues in [library].

View all other issues in [library].

View all issues with NAD status.


Addresses DE 2


Marking a constructor with explicit has semantics even for a constructor with zero or several parameters: Such a constructor cannot be used with list-initialization in a copy-initialization context, see [over.match.list]. The standard library apparently has not been reviewed for marking non-single-parameter constructors as explicit.


Consider marking zero-parameter and multi-parameter constructors explicit in classes that have at least one constructor marked explicit and that do not have an initializer-list constructor.


Robert Klarer to address this one.

[ 2009 Santa Cruz: ]

Move to "Open". Robert Klarer has promised to provide wording.

[ 2010 Pittsburgh: Moved to NAD, rationale added below. ]


We are unaware of any cases where initializer lists cause problem in this context, but if problems arise in the future the issue can be reopened.

Proposed resolution: