Flag proposal

so so at so.so
Tue Jun 14 04:11:43 PDT 2011


On Tue, 14 Jun 2011 12:58:30 +0300, KennyTM~ <kennytm at gmail.com> wrote:

> And yet, with loc.x, myWin.width etc, you don't need to check the  
> definition to know those should be coordinates and widths.

loc.x on the caller side, it has no idea about function signature, and you  
don't know if it was 10th or 2nd argument in function.

// definition
fun(int x, int y) {
}

// call
fun(x, y) // you need to check the definition if you think something wrong  
with parameters the second time you come here
fun(y, x) // same
fun(x:x, y:y) // you know there is nothing wrong with parameters
fun(y:y, x:x) // same

> You don't need to abandon hybrid to enable reordering. Ary's suggestion,  
> for example, allows positional and named arguments to coexist.

Allows reordering by introducing two new order restrictions which i still  
had trouble understanding, sorry Ary :)

> Why do you need to check the function definition when you see 'moveTo(x,  
> y)'?

Same question, why do you need named arguments?

>> enum bRepaint=true;
>> MoveWindow(... bRepaint)
>
> Non sequitur. In my MoveWindow example hWnd, loc and myWin are assumed  
> to be variables you got from  elsewhere. The names of these variables  
> already provide the semantics to the readers, making NA for those  
> arguments redundant.  If they were constants it's nothing wrong with
>
>      MoveWindow(hWnd, X:0, Y:0, nWidth:200, nHeight:200, bRepaint:true);

Again, they are variables you get on the caller side, they got no idea  
about function signature.
Also i don't understand why some think allowing hybrid calls has any  
merit. Just search "named arguments" and first thing you'd see is calls  
with all arguments named, no exception. Allowing unnamed arguments and  
named arguments in one call doesn't make any sense to me, it is almost  
opposite to the reasons named arguments designed for, you don't even need  
to talk about its drawbacks like the complications and confusions.


More information about the Digitalmars-d mailing list