Created on 2019-09-24.00:00:00 last changed 48 months ago
Proposed resolution (October, 2019):
Change 12.2.3 [over.match.viable] bullet 2.3 as follows:
A candidate function having more than m parameters is viable only if
the (m+1)st parameter has a default argument (9.3.4.7 [dcl.fct.default]). [Footnote: According to 9.3.4.7 [dcl.fct.default], parameters following the (m+1)st parameter must also have default arguments. —end footnote]all parameters following the mth have default arguments (9.3.4.7 [dcl.fct.default]). For the purposes of overload resolution, the parameter list is truncated on the right, so that there are exactly m parameters.
[Adopted as a DR at the November, 2019 meeting.]
(From editorial issue 3235.)
According to 12.2.3 [over.match.viable] bullet 2.3 says,
First, to be a viable function, a candidate function shall have enough parameters to agree in number with the arguments in the list.
...
A candidate function having more than m parameters is viable only if the (m+1)st parameter has a default argument (9.3.4.7 [dcl.fct.default]). [Footnote: According to 9.3.4.7 [dcl.fct.default], parameters following the (m+1)st parameter must also have default arguments. —end footnote] For the purposes of overload resolution, the parameter list is truncated on the right, so that there are exactly m parameters.
However, this is incorrect; 9.3.4.7 [dcl.fct.default] paragraph 4 permits parameter packs to follow parameters with default arguments.
History | |||
---|---|---|---|
Date | User | Action | Args |
2020-12-15 00:00:00 | admin | set | messages: + msg6472 |
2019-09-24 00:00:00 | admin | create |