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;