-
Notifications
You must be signed in to change notification settings - Fork 7
Description
in decl.fct p4, we say
After producing the list of parameter types, any top-level cv-qualifiers 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.
Emphasis mine.
It's not clear what we mean by "or a function parameter pack".
A function can have a number of parameter packs in arbitrary position, and the fact that only the trailing pack is a deduced context is irrelevant when we are not deducing anything.
Are these functions equivalent?
void f(auto..., auto) {}
void f(auto..., auto) {}
Proposed resolution (which needs further massaging)
After producing the list of parameter types, any top-level cv-qualifiers modifying a parameter type are deleted when forming the function type. The resulting list of transformed parameter types and whether each corresponding parameter-declaration is a function parameter pack and the presence or absence of the ellipsis or a function parameter pack is the function's parameter-type-list.