Should the comma operator be removed in D2?

dsimcha dsimcha at yahoo.com
Mon Nov 16 14:23:21 PST 2009


== Quote from Lutger (lutger.blijdestijn at gmail.com)'s article
> 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);

Axe.  Looks like the only things it's good for are making code undreadable and
abusing for loop syntax to...

Make code unreadable.

When the heck would this be significantly more readable, safer, or more concise
than doing the equivalent without it?  Also, from previous discussions I vaguely
remember it's constraining other parts of the syntax.



More information about the Digitalmars-d mailing list