You don't have to rewrite Vector for multiple dimensions, methinks:
class Vector(T...) {
this(T t) {}
}
void main()
{
alias Vector!(float, float) vec2f;
auto v = new vec2f(1.0,1.0);
}
You'll probably have to play with `static if`, template constraints,
and stuff like that.