compile time opCall array assignment
Don
nospam at nospam.com
Thu Feb 25 23:59:24 PST 2010
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 time?
> (And how do I fix it :))
>
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.
Workaround:
int[2] x;
x[0]=i1_;
x[1]=i2_;
res.arr=x;
More information about the Digitalmars-d-learn
mailing list