使用模板别名为类似矩阵的向量创建 Typedef
考虑以下类模板:
template<size_t N, size_t M> class Matrix { // .... };
目标是定义一个 typedef,它创建一个相当于 Matrix 的 Vector(列向量)大小为 N 和 1。最初,尝试使用 typedef:
typedef Matrix<N,1> Vector<N>;
但是,这导致了编译错误。使用类继承实现了类似但不相同的解决方案:
template <size_t N> class Vector: public Matrix<N,1> { };
为了找到更合适的解决方案,我们转向 C 11 中引入的别名声明:
template <size_t N> using Vector = Matrix<N, 1>;
这允许创建类型别名Vector
在 C 03 中,可以使用具有嵌套 typedef 的结构来实现类似的近似:
template <size_t N> struct Vector { typedef Matrix<N, 1> type; };
这里,类型 Vector::type 相当于 Matrix
以上是如何从 C 中的矩阵模板创建向量类型别名?的详细内容。更多信息请关注PHP中文网其他相关文章!