Title
Packs in a function's parameter-type-list
Status
open
Section
9.3.4.6 [dcl.fct]
Submitter
Corentin Jabot

Created on 2024-10-25.00:00:00 last changed 1 month ago

Messages

Date: 2024-10-25.00:00:00

(From submission #629.)

Subclause 9.3.4.6 [dcl.fct] paragraph 3 highlights a (singular) pack in a function's parameter-type-list:

The type of a function is determined using the following rules. The type of each parameter (including function parameter packs) is determined from its own parameter-declaration (9.3 [dcl.decl]). After determining the type of each parameter, any parameter of type “array of T” or of function type T is adjusted to be “pointer to T”. After producing the list of parameter types, any top-level cv-qualifier s modifying a parameter type are deleted when forming the function type. The resulting list of transformed parameter types and the presence or absence of the ellipsis or a function parameter pack is the function's parameter-type-list.

The property of being a pack is part of the parameter type as determined by the parameter-declaration, plus there could be multiple packs involved.

Possible resolution

Change in 9.3.4.6 [dcl.fct] paragraph 3 as follows:

The type of a function is determined using the following rules. The type of each parameter (including function parameter packs) is determined from its own parameter-declaration (9.3 [dcl.decl]). After determining the type of each parameter, any parameter of type “array of T” or of function type T is adjusted to be “pointer to T”. After producing the list of parameter types, any top-level cv-qualifier s modifying a parameter type are deleted when forming the function type. The resulting list of transformed parameter types and the presence or absence of the ellipsis or a function parameter pack is the function's parameter-type-list.
History
Date User Action Args
2024-10-25 00:00:00admincreate