如何為修改後的模板類別定義模板類型定義
考慮一個帶有類型參數 N 和 M 的模板類 Matrix。 「Vector」(列向量),維度等於 Matrix
typedef Matrix<N,1> Vector<N>;
但是,這種方法會導致編譯錯誤。
替代方案和解決方案
C 11 引入了別名聲明 泛化typedef 並允許模板化:
template <size_t N> using Vector = Matrix<N, 1>;
在C 11 及更高版本中,型別Vector相當於Matrix。
C 03 的解決方法
在C 11 之前,以下是近似值:
template <size_t N> struct Vector { typedef Matrix<N, 1> type; };
這裡,Vector::type相當於矩陣.
以上是如何在 C 中為修改後的模板類別定義模板類型定義?的詳細內容。更多資訊請關注PHP中文網其他相關文章!