Is there a way to set an alias to specific form of a template?
Roderick Gibson
kniteli at gmail.com
Fri Oct 7 18:29:26 PDT 2011
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?
More information about the Digitalmars-d-learn
mailing list