Dream Feature Regarding Default Arguments
Meta
jared771 at gmail.com
Mon Apr 7 13:00:38 PDT 2014
On Monday, 7 April 2014 at 19:47:24 UTC, Frustrated wrote:
> it would be relatively easy.
>
> void myfunc(name = int x) { }
>
> instead of
>
> void myfunc(int x) { }
>
> then
>
> myfunc(name = 4);
>
> or one could simply use the variable name
>
> void myfunc(int x) { }
>
> myfunc(x = 3);
>
>
> Of course assignments may not be valid, one could use :=
> instead.
>
> myfunc(x := 3);
>
>
>
> One could build a template to do it how were but it would
> require calling the function as a string,
>
> e.g., template is passed the call as a string. The template
> gets the name of the function, looks up the parameter names,
> parses the arguments and generates the proper call string which
> is then mixed in.
>
> e.g., Named(q{myfunc(x := 3)}); => myfunc(3);
C# uses <name>:, like the follow.
void TestFun(int i, string s = "", bool b)
{
//...
}
TestFun(i: 1, b: false);
Is there any reason not to use this syntax? It doesn't *seem* to
conflict with anything else.
More information about the Digitalmars-d
mailing list