Timon Gehr wrote:
On 08/12/2011 09:32 PM, bearophile wrote:
Timon Gehr:

foreach_reverse(i;0..array.length) writeln(array[i]),i--;

I'd like to statically forbid some more usages of the comma operator in D :-)

Some of them are already forbidden compared to C. This is valid C code:

int main() {
     int array[5];
     int i = 1;
     int j = 2;
     array[i, j] = 5;
     return 0;
}

While in D it's forbidden, it catches a possible wrong usage:
Line 5: Error: only one index allowed to index int[5u]

Bye,
bearophile

That is because it is not a comma operator. It is an argument list. ;)
array[(i, j)] = 5;
works fine.

No, it was specifically disallowed.

Version D 2.037 Dec 3, 2009
New/Changed Features
    No more comma operators allowed between [ ].

Reply via email to