This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 121a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2026-10-10


3236. Redundant specification for default arguments

Section: 9.3.4.7  [dcl.fct.default]     Status: review     Submitter: Yin Xinyu     Date: 2026-09-22

(From submission #1011.)

Subclause 9.3.4.7 [dcl.fct.default] paragraph 11 says

... A default argument is not part of the type of a function. ...

However, 9.3.4.6 [dcl.fct] paragraph 13 already says as much:

The return type, the parameter-type-list, the ref-qualifier , the cv-qualifier-seq, and the exception specification, but not the default arguments (9.3.4.7 [dcl.fct.default]) or the trailing requires-clause (9.3 [dcl.decl]), are part of the function type.

Suggested resolution (September, 2026):

Change in 9.3.4.7 [dcl.fct.default] paragraph 11 as follows:

[Note: A default argument is not part of the type of a function. [Example 9: ... -- end example ] -- end note]

CWG 2026-10-06

CWG noticed that 9.3.4.6 [dcl.fct] paragraph 13 is, in turn, redundant with 9.3.4.6 [dcl.fct] paragraph 1.

Proposed resolution (October, 2026):

  1. Change in9.3.4.6 [dcl.fct] paragraph 13 as follows:

    [Note: The return type, the parameter-type-list, the ref-qualifier , the cv-qualifier-seq, and the exception specification, but not the default arguments (9.3.4.7 [dcl.fct.default]) or the trailing requires-clause (9.3 [dcl.decl]), are part of the function type. [Note 6: Function types are checked during the assignments and initializations of pointers to functions, references to functions, and pointers to member functions. —end note]
  2. Change in 9.3.4.7 [dcl.fct.default] paragraph 11 as follows:

    [Note: A default argument is not part of the type of a function. [Example 9: ... -- end example ] -- end note]