行列列ベクトルの C テンプレート Typedef
C では、一般的なタスクは、特定の次元の行列と同等の列ベクトルを作成することです。 。たとえば、Matrix クラスから派生した Vector クラスが望ましいでしょう。残念ながら、この目的で標準の typedef メカニズムを使用すると、コンパイル エラーが発生します。
C 11 解決策: エイリアス宣言
C 11 では、typedef の一般化であるエイリアス宣言が導入されました。これにより、テンプレートの特殊化が可能になります。次のコードは解決策を提供します。
template <size_t N> using Vector = Matrix<N, 1>;
この宣言により、型 Vector は次のようになります。 Matrix<3, 1> と同等です。
C 03 回避策
C 03 では、エイリアス宣言に最も似た回避策は、ネストされた typedef を使用することです。
template <size_t N> struct Vector { typedef Matrix<N, 1> type; };
この場合、 Vector::type は行列 と同等です。
以上がC テンプレートを使用して列ベクトル型を定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。