Re: compile time opCall array assignment

2010-02-26 Thread Don
strtr wrote: struct S{ int[2] arr = 0; static S opCall( int i1_, int i2_) { S res = void; res.arr[0] = i1_; res.arr[1] = i2_; return res; } } const S CS= S(0,0); Why can't this be evaluated at compile

Re: compile time opCall array assignment

2010-02-26 Thread strtr
Don Wrote: Because expressions of the form a.b[i]= c aren't yet supported in CTFE. It will work in a couple of compiler releases from now. Only D2, or D1 as well? Workaround: int[2] x; x[0]=i1_; x[1]=i2_; res.arr=x; :)

Re: compile time opCall array assignment

2010-02-26 Thread Don
strtr wrote: Don Wrote: Because expressions of the form a.b[i]= c aren't yet supported in CTFE. It will work in a couple of compiler releases from now. Only D2, or D1 as well? Both. Workaround: int[2] x; x[0]=i1_; x[1]=i2_; res.arr=x; :)