`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?`