C++ template typedef
我有一节课
1 2 3 4 | template<size_t N, size_t M> class Matrix { // .... }; |
我想制作一个
1 | typedef Matrix<N,1> Vector<N>; |
会产生编译错误。以下内容创建了类似的内容,但并不完全符合我的要求:
1 2 3 | template <int N> class Vector: public Matrix<N,1> { }; |
是否有解决方案或不太昂贵的解决方案/最佳实践?
C++ 11添加别名声明,这是EDCOX1(0)的泛化,允许模板:
1 2 | template <size_t N> using Vector = Matrix<N, 1>; |
在C++ 03中,最接近的近似是:
1 2 3 4 5 | template <size_t N> struct Vector { typedef Matrix<N, 1> type; }; |
这里,