Sebastian Schuberth: > struct Vector(alias N,T) > { > static immutable Vector X=Vector(1,0,0); > > this(T[N] v ...) { > data=v; > } > > T data[N]; > }; > > alias Vector!(3,float) Vec3f;
This seems to work: struct Vector(int N, T) { static immutable Vector x; static this() { x = Vector(1, 0, 0); } this(T[N] v...) { data = v; } T[N] data; } alias Vector!(3,float) Vec3f; void main() { auto v = Vec3f(1,2,3); v = v.x; assert(v.data[0] == 1.0); } Your code doesn't work because type safe variadic functions can't be used at compile time yet :-) It's a limitation that I think Don will eventually remove. Bye, bearophile