DIP 1019--Named Arguments Lite--Final Review

Andrei Alexandrescu SeeWebsiteForEmail at erdani.com
Fri Aug 23 19:56:38 UTC 2019


On 8/23/19 3:48 PM, Paul Backus wrote:
> On Friday, 23 August 2019 at 19:33:07 UTC, Dennis wrote:
>> Correction:
>> ```
>> import std.stdio;
>> void foo(int a, int b) {writeln("0");}
>> void foo(int b, double a) {writeln("1");}
>> void main()
>> {
>>     foo(b: 10, 0);
>> }
>> ```
>>
>> The point is, is an exact type match more important than parameter 
>> order match?
> 
> Walter's proposal from the previous discussion was that named parameters 
> should use the same rules for reordering as named struct initialization 
> [1] (which in turn are the same rules used by designated initializers in 
> C99 [2]). So in this case, the second overload would be called, because 
> it's the only one with a parameter after `b`.
> 
> Even if these aren't your favorite rules, I think there's a lot to be 
> said for consistency.
> 
> [1] https://dlang.org/spec/struct.html#static_struct_init
> [2] http://port70.net/~nsz/c/c99/n1256.html#6.7.8p17

Noice!


More information about the Digitalmars-d mailing list