Declaring Ref Variables Inside Function Calls

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Mar 31 18:55:10 PDT 2009


Sergey Gromov wrote:
> Tue, 31 Mar 2009 18:38:35 -0700, Andrei Alexandrescu wrote:
> 
>> Sergey Gromov wrote:
>>> Comma expression is not ambiguous.  It's a comma expression.  Renaming
>>> it into a tuple constructor expression does not add any ambiguity.
>>> Parentheses here are only required to separate the comma expression from
>>> an assignment expression which otherwise would become a part of comma
>>> expression.  Sure there are problems with making tuples first-class, but
>>> this is certainly not one of them.
>> I don't understand. So are you suggesting that the comma expression gets 
>> sacked?
> 
> Now comma expression drops all the results but the last one.  You lose
> nothing by making it keep other results as well.  Then you can make it
> extract the last element as a result of an implicit cast.

That won't work because you'd paste C code into your D code and it'll
compile with different results.

> Disallowing the C-style usage of comma expression is also an option.

Ok.

>>> I'm putting together a blog post about a possible design of first-class
>>> tuples in D.  Hope it won't take too long.
>> What does "first-class" mean?
> 
> First-class values, like, native, with built-in compiler support.

A tuple is a parameterized type, not a value. And first-class doesn't 
mean with built-in compiler support.


Andrei



More information about the Digitalmars-d mailing list