Date: Sun, 4 Jan 2026 08:32:51 +0100
> Things that you might want to put into the narrative:
>
> - Given that several function declarations may have deviating
> parameter names, choosing which one to take is a question.
> But that has been conceptually addressed by reflection
> (take the unique one, otherwise there is none).
>
> - Exposure of function parameter names from the standard library
> is also conceptually addressed by reflection.
Yeah, maybe the draft doesn't make it so obvious, but our approach to
declarations with different parameter names is the same as for parameter
name reflection.
As for standard library functions, they already have a bunch of properties
that are observable but which we don't bother to keep stable like:
- Exact expression validity/invalidity (detectable with
requires-expressions).
- Forming function pointers or references to functions (except for
addressable functions).
- Explicitly providing template arguments (in <algorithm>).
- Reflecting on parameter names and other properties (although I'm not
sure we have a policy for this).
Furthermore, the parameter names in the implementation all use reserved
identifiers, and we could recommend a warning when a reserved named
argument is used, like f(.__x = 0). Consequently, a library-wide policy of
not supporting named arguments would be trivial to implement.
>
> - Given that several function declarations may have deviating
> parameter names, choosing which one to take is a question.
> But that has been conceptually addressed by reflection
> (take the unique one, otherwise there is none).
>
> - Exposure of function parameter names from the standard library
> is also conceptually addressed by reflection.
Yeah, maybe the draft doesn't make it so obvious, but our approach to
declarations with different parameter names is the same as for parameter
name reflection.
As for standard library functions, they already have a bunch of properties
that are observable but which we don't bother to keep stable like:
- Exact expression validity/invalidity (detectable with
requires-expressions).
- Forming function pointers or references to functions (except for
addressable functions).
- Explicitly providing template arguments (in <algorithm>).
- Reflecting on parameter names and other properties (although I'm not
sure we have a policy for this).
Furthermore, the parameter names in the implementation all use reserved
identifiers, and we could recommend a warning when a reserved named
argument is used, like f(.__x = 0). Consequently, a library-wide policy of
not supporting named arguments would be trivial to implement.
Received on 2026-01-04 07:33:05
