非型パラメータを含むテンプレート
テンプレート パラメータは、型要件を指定するために一般的に使用されますが、非型パラメータを使用してテンプレートを宣言することもできます。符号なし整数などの型パラメータ。
構文と意味
型以外のパラメータを含むテンプレートの構文は次のとおりです。
template <unsigned int N>
ここで、N は非型パラメータを表します。このパラメーターは、unsigned int 型のコンパイル時定数としてテンプレート内で使用できます。
使用例
型以外のパラメーターは、さまざまなシナリオで役立ちます。
型パラメーターと非型パラメーター
型パラメーターと非型パラメーターの違いに注意することが重要です。型パラメーターは型 (クラス T やテンプレート T など) を表し、型以外のパラメーターは定数 (unsigned int N など) を表します。
例
次のテンプレート:
template <unsigned int N>
struct Vector {
unsigned char bytes[N];
};
ここで、N はバイト配列のサイズを決定する非型パラメーターです。
<code class="cpp">Vector<3> v; // Vector with 3 bytes</code>
デフォルト値
型以外のパラメーターのデフォルト値を指定することができ、パラメーターを明示的に指定せずにテンプレートを使用できるようになります。例:
<code class="cpp">template <unsigned int SIZE = 3> struct Vector { unsigned char buffer[SIZE]; };</code>
上記のテンプレートのデフォルトの SIZE は 3 であるため、以下は有効です:
<code class="cpp">Vector v; // Equivalent to Vector<3></code>
結論
Non-テンプレートの型パラメーターは柔軟性を提供し、固定値または定数値を使用してコードを再利用できます。これらにより、配列のサイズ設定から条件付きコンパイルに至るまで、さまざまなユースケースが可能になります。
以上がC テンプレートで型以外のパラメーターを使用するのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。