Should the comma operator be removed in D2?

Lutger lutger.blijdestijn at gmail.com
Mon Nov 16 14:20:03 PST 2009


dsimcha wrote:

> == Quote from Justin Johansson (no at spam.com)'s article
>> Mentioned in the switch case statements thread, this probably should be
>> a separate discussion thread.
>> Is the comma operator "another piece of C cruft" that needs to be
>> removed from D(2)?
>> grauzone wrote:
>>  > Justin Johansson wrote:
>>  >> bearophile wrote:
>>  >>> What's bad about forcing people to write:
>>  >>> case A, B, C:
>>  >>>
>>  >>> Instead of:
>>  >>> case A:
>>  >>> case B:
>>  >>> case C:
>>  >>> ?
>>  >>>
>>  >>> Bye,
>>  >>> bearophile
>>  >>
>>  >> I don't know about "forcing people" to write such but perhaps it
>>  >> could be an "option for people" :-)
>>  >>
>>  >> Actually I quite like the brevity you propose but would it be a
>>  >> challenge for the comma operator?
>>  >>
>>  >> While ago, I got D multi-dimensional array syntax messed up and
>>  >> declared such an animal as
>>  >> int[3,4,5] which effectively ended up declaring the beast as int[5].
>>  >
>>  > The comma operator is another piece of C cruft that needs to go.
>>  >
>>  >> Cheers Justin
> 
> Can someone please explain to me what the comma operator does?  I've seen
> this
> mentioned here before, but I really don't know.  Then again, if the only
> people who use it are crufty old C language lawyers and people who have
> never programmed seriously in C before don't know about it, I guess that's
> an indicator that it's not worth much.

It is very simple, evaluates the expression before the comma and after the 
comma. The result is the value of the expression after the comma.

int a = 1;
int b = --a, ++a;
assert(b == 1);
assert(a == 1);



More information about the Digitalmars-d mailing list