I have a class
template<size_t N, size_t M>
class Matrix {
// ....
};
I want to make a typedef which creates a Vector (column vector) which is equivalent to a Matrix with sizes N and 1. Something like that:
typedef Matrix<N,1> Vector<N>;
Which produces compile error. The following creates something similar, but not exactly what I want:
template <size_t N>
class Vector: public Matrix<N,1>
{ };
Is there a solution or a not too expensive workaround / best-practice for it?
C++11 added alias declarations, which are generalization of
typedef, allowing templates:The type
Vector<3>is equivalent toMatrix<3, 1>.In C++03, the closest approximation was:
Here, the type
Vector<3>::typeis equivalent toMatrix<3, 1>.