digitalmars.D.learn - compile time opCall array assignment
- strtr <strtr spam.com> Feb 25 2010
- Don <nospam nospam.com> Feb 25 2010
- strtr <strtr spam.com> Feb 26 2010
- Don <nospam nospam.com> Feb 26 2010
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 :))
Feb 25 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 :))
It will work in a couple of compiler releases from now. Workaround: int[2] x; x[0]=i1_; x[1]=i2_; res.arr=x;
Feb 25 2010
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.
Workaround: int[2] x; x[0]=i1_; x[1]=i2_; res.arr=x;
Feb 26 2010
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.
Both.Workaround: int[2] x; x[0]=i1_; x[1]=i2_; res.arr=x;
Feb 26 2010








Don <nospam nospam.com>