Things that may be removed

Frits van Bommel fvbommel at REMwOVExCAPSs.nl
Thu Dec 25 06:09:59 PST 2008


Jarrett Billingsley wrote:
> On Wed, Dec 24, 2008 at 5:24 PM, Yigal Chripun <yigal100 at gmail.com> wrote:
>> why not replace the current comma operator with tuple support?
>> the comma op needs to be higher than assingment in precedence and instead of
>> evaluating the expressions left to right and returning the value of the
>> _last_ expression as the return value of the op, return _all_ expressions'
>> return values as a value tuple. the current behavior that is really used
>> only in for loops can be implemented with tuples as well.
>>
>> insted of:
>> for (int i = 0, long j = 0; ...; ...) {...}
> 
> Actually that's not legal syntax.  You're thinking of "int i = 0, j =
> 0", which is parsed as a single declaration statement which declares
> two variables.  This does not use the comma operator.
> 
> The place where the comma operator is used is in the increment:
> 
> for(..; ..; i++, j++)
> 
> All that has to be done here is the comma has to be added to the
> increment grammar of the for loop.  (MiniD does this.)

Actually, that isn't even needed. Since the return value of the 
increment is never used, and it can be any type at all, there would be 
no reason to change that line of code at all.
So the increment clause is suddenly a tuple? Who cares; it still 
increments just fine, doesn't it? :)

The only potential problem (which I just now thought of) would be 
increments with type void (e.g. ++i, iter.step()). Do tuple values allow 
void elements? If not, would it do any harm to allow them?



More information about the Digitalmars-d mailing list