Should we deprecate comma?

Marc Schütz" <schuetzm at gmx.net> Marc Schütz" <schuetzm at gmx.net>
Mon Mar 24 05:27:34 PDT 2014


On Monday, 24 March 2014 at 02:26:12 UTC, deadalnix wrote:
> On Monday, 24 March 2014 at 01:36:46 UTC, bearophile wrote:
>> C code should not silently behave differently in D, even five 
>> years from now, so I am not interested in using the C comma 
>> syntax for D tuples. I am OK with a D tuple syntax that is not 
>> allowed in C.
>>
>
> It won't silently break. I concede it will break.

There are some corner cases where it might silently behave 
differently:

int a, b;
a, b = (1, 2);

This is apparently allowed in C, and will be equivalent to "b = 
2;". But if we require parentheses, at least GCC 4.8.1 rejects it:

int a, b;
(a, b) = (1, 2);

tuple.c:3:8: error: lvalue required as left operand of assignment
  (a, b) = (1, 2);
         ^

So, with carefully tweaking the tuple syntax, we can probably 
reject any valid C code.


More information about the Digitalmars-d mailing list