Should the comma operator be removed in D2?

Yigal Chripun yigal100 at gmail.com
Mon Nov 16 21:06:27 PST 2009


Robert Jacques wrote:
> On Mon, 16 Nov 2009 17:53:45 -0500, Stewart Gordon <smjg_1998 at yahoo.com> 
> wrote:
> 
>> dsimcha wrote:
>> <snip>
>>> Axe.  Looks like the only things it's good for are making code 
>>> undreadable and
>>> abusing for loop syntax to...
>>>  Make code unreadable.
>> <snip>
>>
>> Suppose you want the increment of a for loop to change two variables 
>> in parallel.  I don't call that making code unreadable.
>>
>> Stewart.
> 
> Yes the classic use case of the comma operator is multi-variable 
> declarations/increments in a for loop.

This was argued before and as I and others said before, this is *not* a 
use case for the comma separator.

e.g.
for (int a = 0, b = 1; condition(); a++, b++) {...}

int a = 0, b = 1 // this is a declaration and not an expression

a++, b++ // isn't assigned to any variable and can be treated as a tuple

the only use case that will break is if the two increments are dependent 
on the order (unless tuples are also evaluated from left to right):
e.g.
a + 5, b + a //

I doubt it very much that anyone ever uses this, it's too unreadable to 
be useful.



More information about the Digitalmars-d mailing list