On 7/20/14, 2:22 AM, Tove wrote:
On Friday, 18 July 2014 at 17:40:23 UTC, Timon Gehr wrote:
On 07/18/2014 12:00 AM, Trass3r wrote:
void foo(int a, int b = a)
{
}
is illegal in C++ because order of evaluation is undefined.

But since D defines the order to be left to right couldn't it also allow
this?

It could, and I think it is an unnecessary limitation that it
currently does not. (This can also be useful if that parameter is the
hidden 'this' reference.)

This request keeps popping up, I've seen it at least 3 times before and
there's even an enhancement request for it:
https://issues.dlang.org/show_bug.cgi?id=8075

IIRC:
Walter's stance was that he needs compelling examples, which proves the
utility of this new feature.

The classic example is injecting alloca downstream:

auto fun(size_t s, void[] buffer = alloca(s)[0 .. s])
{
  ...
}


Andrei

Reply via email to