Created on 2014-03-13.00:00:00 last changed 2 months ago
Proposed resolution (November, 2017)
Change 220.127.116.11 [expr.type.conv] paragraph 2 as follows:
If the initializer is a parenthesized single expression, the type conversion expression is equivalent to the corresponding cast expression (7.6.3 [expr.cast]). Otherwise, if the type is cv void and the initializer is () , the expression is a prvalue of the specified type that performs no initialization. Otherwise, the expression is a prvalue of the specified type whose result object is direct-initialized (9.4 [dcl.init]) with the initializer.
For an expression of the form T(), Tshall not be an array type.
Proposed resolution (June, 2014): [SUPERSEDED]
This issue is resolved by the resolution of issue 1299.
[Accepted as a DR at the March, 2018 (Jacksonville) meeting.]
According to 18.104.22.168 [expr.type.conv] paragraph 1,
A simple-type-specifier (22.214.171.124 [dcl.type.simple]) or typename-specifier (13.8 [temp.res]) followed by a parenthesized expression-list constructs a value of the specified type given the expression list. If the expression list is a single expression, the type conversion expression is equivalent (in definedness, and if defined in meaning) to the corresponding cast expression (7.6.3 [expr.cast]). If the type specified is a class type, the class type shall be complete. If the expression list specifies more than a single value, the type shall be a class with a suitably declared constructor (9.4 [dcl.init], 11.4.5 [class.ctor]), and the expression T(x1, x2, ...) is equivalent in effect to the declaration T t(x1, x2, ...); for some invented temporary variable t, with the result being the value of t as a prvalue.
This does not cover the cases when the expression-list contains a single braced-init-list (which is neither an expression nor more than a single value) or if it contains no expressions as the result of an empty pack expansion.
|2020-12-15 00:00:00||admin||set||status: dr -> cd5|
|2018-04-11 00:00:00||admin||set||status: tentatively ready -> dr|
|2018-02-27 00:00:00||admin||set||status: drafting -> tentatively ready|
|2015-04-13 00:00:00||admin||set||messages: + msg5318|
|2014-11-24 00:00:00||admin||set||status: ready -> drafting|
|2014-07-07 00:00:00||admin||set||messages: + msg5064|
|2014-07-07 00:00:00||admin||set||status: open -> ready|