Am Fri, 24 Jul 2015 14:04:17 -0700
schrieb Walter Bright <[email protected]>:

> On 7/24/2015 10:15 AM, tcak wrote:
> > How would this create a problem I can't see.
> 
> The question is what problem does it solve.

At least:
1 Better readable code with literal parameters
  auto x = window.addNewControl("Title", 20, 50, 100, 50, true);
  There are some domains which would benefit a lot from this (every
  OpenGL function call, most graphics/image libraries)

2 If you have many parameters with default values, you can keep default
  values for all other parameters and overwrite only one. This can
  sometimes be done with overloads, but what if you've got parameters
  of the same type:
  void foo(bool a = function1(x, y), bool b = function2(x, y), bool c =
      function1(x, y))
  foo(function1(x, y), function2(x, y), false); => foo(c = false)

3 One thing that's sometimes annoying in D is that it's not possible to
  have normal arguments after a variadic argument. Named parameters
  could solve that:
  void foo(A, T... args, B) => foo!(int, int, bool, B = bool)


Note that there are languages which allow named parameters but do not
allow parameter reordering. This still allows 1 and 3 but the
implementation is simpler.

Reply via email to