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?

Reply via email to