This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD status.

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

Priority: Not Prioritized

View other active issues in [library].

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 12.2.2.8 [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: