This may be the completely wrong approach, but I am basically thinking of something like this (I am aware this will not compile, it's psuedocode):

class Vector(T) {
        ... //definition here
}

alias Vector(float, float) vec2f;
auto v = new vec2f(1.0,1.0);

I am making a templated Vector class (a mathematical vector) that will have varying types (thus a template) and dimensions (via variadic functions), so that the same template definition will work for 2d or 3d vectors (or 4d, etc). I then want the programmer to be able to define the specific forms that he wants so he can easily keep track of them (without getting confused about which is a 2d integer vector and which is a 3d float vector), and then use those forms in a type safe manner. Is this even possible? If it is, but it's the wrong way to do it, what's the right way?

Basically I wanted to write it once and not worry about writing it again to handle different types and dimensions (no vec2i class, or vec2f, or vec3f, or vec3i, etc). Templates easily handles the type requirement, but what about the dimensional requirement? Am I just going to have to rewrite it when I add dimensions?

Reply via email to