On Monday, 4 June 2018 at 10:30:18 UTC, rikki cattermole wrote:
On 04/06/2018 10:05 PM, Yuxuan Shui wrote:
On Monday, 4 June 2018 at 05:46:04 UTC, rikki cattermole wrote:
[...]

Not sure what you meant? This definitely does not error out: https://godbolt.org/g/PAiFPw

```D
@named:
int add(int a, int b);
int add(int b, int a) {
        assert(a > 0);
        return a + b;
}

void main() {
        add(2, 0);
}
```


This shouldn't fail to compile. I think it's made clear in the DIP, parameter names play no role in overload resolution.

[...]

Care to elaborate why? In this DIP, name prefix on caller side is optional, caller is allowed to leave out any number of argument names if they want.

Not all parameters should be used as named arguments. Two syntax's one purpose isn't desired, which the DIP currently encourages.

Why is this two syntaxes one purpose?


Personally I want to keep named and unnamed completely separate and focus more upon public API.



While I'm not keen on 2 and definitely would love for 3, my first point is what will determine if I vote yes or not (assuming it gets there). My instincts are saying that it simply hasn't been thought through enough just yet and that there will be some real trouble with it.

I've dwelt on this for a couple of months now, and keeping thinking on it myself is not going to help. That's why I'm asking for feedback.


Ambiguity is nobody's friend when it comes to programming language proposals. You have time to think it over, and I could be very wrong (of course); but other wise as a lite version of named arguments its not a bad DIP, just maybe we can do better for D ;)

Reply via email to