DMD 1.035 and 2.019 releases

Walter Bright newshound1 at digitalmars.com
Wed Sep 3 16:29:00 PDT 2008


Jarrett Billingsley wrote:
> Speaking of syntactical ambiguity, the expression
> 
> S(1, 2, 3)
> 
> can, right now, have one of three meanings:
> 
> 1. A struct literal for struct S
> 2. A call to S's static opCall
> 3. An instantiation of S and a call to its ctor
> 
> Even if opCall goes away, we'll still be left with the ambiguity of 
> struct literal vs. ctor.  I'd really, really like to hear Walter's view 
> on this but he has responded neither to the thread I posted on 
> digitalmars.D nor the bugzilla ticket 
> (http://d.puremagic.com/issues/show_bug.cgi?id=2170).

If there's any constructor defined for S, then S(args) is a constructor 
call.

If there's any opCall defined for S, then S(args) is an opCall call.

Otherwise, it's a struct literal.


More information about the Digitalmars-d-announce mailing list