is there a way to make DMD unroll loops? i can use mixins instead, but it's ugly... struct Vec(T,int dim) { alias Vec!(T,dim) vec_t; T[dim] data; void opAddAssign(vec_t v) { foreach ( int i, inout d; data ) d += v.data[i]; // alternatively: // for ( int i = 0; i < dim; ++i ) // data[i] += v.data[i]; } }