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

Section: 20 [library], 33 [thread], D [depr] Status: NAD Submitter: LWG Opened: 2009-06-28 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [library].

View all issues with NAD status.

Discussion:

Addresses DE 2

Description

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 16.3.1.7 [over.match.list]. The standard library apparently has not been reviewed for marking non-single-parameter constructors as explicit.

Suggestion

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.

Notes

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. ]

Rationale:

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: