矩阵列向量的 C 模板 Typedef
在 C 中,常见的任务是创建与特定维度的矩阵等效的列向量。例如,从 Matrix 类派生的 Vector 类将是理想的。不幸的是,为此目的使用标准 typedef 机制会导致编译错误。
C 11 解决方案:别名声明
C 11 引入了别名声明,这是 typedef 的泛化,这允许模板专门化。下面的代码提供了一个解决方案:
template <size_t N> using Vector = Matrix<N, 1>;
使用此声明,类型 Vector相当于 Matrix。
C 03 解决方法
在 C 03 中,与别名声明最相似的解决方法是使用嵌套 typedef:
template <size_t N> struct Vector { typedef Matrix<N, 1> type; };
在这种情况下,Vector::type 是等效的到矩阵。
以上是如何使用 C 模板定义列向量类型?的详细内容。更多信息请关注PHP中文网其他相关文章!