Cara Mentakrifkan Typedef Templat untuk Kelas Templat yang Diubah Suai
Pertimbangkan Matriks kelas templat dengan parameter jenis N dan M. Untuk mencipta "Vektor" (vektor lajur) dengan dimensi yang setara dengan Matriks
typedef Matrix<N,1> Vector<N>;
Walau bagaimanapun, pendekatan ini membawa kepada ralat penyusunan.
Alternatif dan Penyelesaian
C 11 memperkenalkan perisytiharan alias yang menyamaratakan typedef dan membenarkan templat:
template <size_t N> using Vector = Matrix<N, 1>;
Dalam C 11 dan kemudian, jenis Vector<3> adalah bersamaan dengan Matriks<3, 1>.
Penyelesaian untuk C 03
Sebelum C 11, berikut ialah anggaran hampir:
template <size_t N> struct Vector { typedef Matrix<N, 1> type; };
Di sini, Vector<3>::type adalah bersamaan kepada Matriks<3, 1>.
Atas ialah kandungan terperinci Bagaimana untuk Mentakrifkan Typedef Templat untuk Kelas Templat yang Diubah Suai dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!