「配列のサイズ」テンプレート関数を理解する
プログラミングでは、さまざまな操作を実行するために配列の長さを取得することが必要になることがよくあります。 。テンプレート関数 GetArrLength は、簡潔かつ効率的なアプローチを使用してこのタスクを実行することを目的としています。
関数の定義は次のとおりです。
template<typename T, int size> int GetArrLength(T(&)[size]) { return size; }
仕組み
関数の動作を理解するために、関数を詳しく見てみましょう構造体:
パラメータの種類: T(&&)[size]
テンプレートパラメータ: T、size
戻り値: int
使用例
次のコード スニペットを考えてみましょう。int a[10]; int arraySize = GetArrLength(a);
元の質問が示すように、GetArrLength の戻り値は定数式ではありません。 C では、定数式はコンパイル時に既知の値に評価される必要があります。配列の長さについては、配列は静的に割り当てられるため、これは常に当てはまります。ただし、元の関数には、この情報を定数として返す方法がありません。
この問題に対処するには、質問の回答セクションで提供されているような、より高度な解決策が必要です。このソリューションにより、関数は配列の長さの定数値を返すことが保証されます。
以上がテンプレート関数を使用して C 配列の長さを取得し、定数式の結果を保証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。