Check Instance of Template for Parameter Type/Value

Stewart Moth via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Oct 19 07:51:28 PDT 2015


I'm working with a library that has template structs of 
mathematical vectors that can sometimes be the type of an array 
I'm passing to a function.

The definition of the struct is like this:

struct Vector(type, int dimension_){ ... }

Where type is going to be an int/float/etc and dimension_ is 
2/3/4.

I could write a bunch of functions for each case, but I'd rather 
not... I'd like to use something like the following:

void foo(T)(Array!T array){
     if(isInstanceOf!(Vector, T)){
         //get type of T or check it
         //test if dimension_ is 2 or 3 or 4
         ...
     } else {
         //Non-vector stuff
         ...
     }
}

But to do that I need to check that parameters of T as if it were 
an instantiated instance of Vector and I'm not sure how to 
accomplish that... Can anyone help me out with what I need to do?


More information about the Digitalmars-d-learn mailing list