On Thursday, 27 March 2014 at 11:32:45 UTC, Kagamin wrote:
On Wednesday, 26 March 2014 at 16:21:01 UTC, H. S. Teoh wrote:
What we're proposing is to get rid of things like this:
int x = 1, 5; // hands up, how many understand what this does?
This proposal gets rid of this while keeping the comma operator.
The point is that this is not the comma operator, and is already
illegal to begin with.
*This* is what is being made illegal
int x = (1, 5);
The point being that most programmers don't actually understand
all the subtleties of comma operator vs argument listing. Mysielf
included (I also thought that was a comma operator...)
Also, not to mention issues with things like operator
precedence...
a = 1, 5 + 2; //What's a?
a = (1 + 2, 5); //What's a?
Speaking of which:
a = 1, 5 + 2;
Why doesn't dmd emit an "operator , has no effect" error?
Or
a = (1 + 2, 5)
Why doesn't dmd emit an "operator + has no effect" error?