named parameters to functions

Frank Benoit keinfarbton at googlemail.com
Sat Dec 15 10:02:13 PST 2007


Zola schrieb:
> Hi,
> 
> I'm amazed by some things D does have,
> Except I'm puzzled by this one one gaping hole in D.
> 
> It's something I've been pissed off about C++ for 10 years now:
> Named parameters to functions.
> 
> window* w = new_window("alert box", movable=false);
> 
> We can almost do this in C++ today with boost.parameter and I hate it so much that I refuse to use it, because the only way to do so is by polluting your namespace.
> 
> I'm really surprised to see that D doesn't have this super important feature.
> It redefines and simplifies a whole world of class design.. for user interfaces especially.
> 
> If D included this, I think it would be the tipping point to really getting me into D, and making a serious library for it.
> 
> Please.
> 
> - Z

I really second this feature request.

I often deal with generating a framework api from a database or such. So
often the count of parameter can be high. I would like to have named
parameters, so i could copy an example call, an fill in like a form.

doTheAction(
	countOfBananas    => 2,
	errorOnBadQuality => true
);

This makes the code even more readable.

Sure i could do that with comments, but the api might be enhanced or
changed. With named arguments, the compiler can help to show the places,
where a correction is neccessary.

Named arguments are always useful, if the count and sequence of
arguments is not obvious.
For example VHDL/Verilog are using named arguments a lot.

Since D is a multi paradigm language, not everything is OOP and not
every method has less than 4 args.

In my case, where I use a generated API, this would allow better
readability and faster development.

Frank








More information about the Digitalmars-d mailing list