インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
N 次元コンテナーの有効な反復空間を表す可変個引数テンプレート・クラスです。#include <sdlt/n_bounds.h>
template<typename... TypeListT>
class n_bounds_t
n_bound_t は、n_container またはそのアクセサーの有効な反復空間を、各次元の bounds_t のシーケンスとして表します。各次元の bounds_t は、異なる型で表現できます。この柔軟性のため、同じインターフェイスを利用して、コンパイル時にすべての次元が分かっている場合は fixed<int NumberT> で、実行時に判明する場合は int で、そして実行時に必ず判明する場合は aligned<int Alignment> の倍数で bounds_t を宣言できます。詳細は、「数値表現」を参照してください。
n_container を作成すると、n_bounds_t の開始位置は常に各次元の包含的な下限 fixed<0> になり、排他的な上限は次元の範囲と一致します。アクセサーは、異なるインデックス空間に変換したり、サブセクションにアクセスを制限することができます。その場合、アクセサーの n_bounds_t が変更されます。
次の表は、n_bounds_t のテンプレート引数の情報を示します。
テンプレート引数 |
説明 |
---|---|
|
型のカンマ区切りリスト。型の数がジェネレーターの次元数を制御します。リスト中の各型は、対応する次元の境界を示します。次元の順番は、C++ の多次元配列の添字と同じ (左端から右端) です。 要件: リストに含まれる型は bounds_t<LowerT, UpperT>。 |
次の表は、n_bounds_t のメンバーの型の情報です。
メンバーの型 |
説明 |
---|---|
|
lower() メソッドによって返される n_index_t<…> の型。 |
|
upper() メソッドによって返される n_index_t<…> の型。 |
次の表は、n_bounds_t のメンバーの情報です。
メンバー |
説明 |
---|---|
|
次元数。 |
|
最後の次元 row のインデックス。 |
|
要件: TypeListT のすべての bounds_t はデフォルト・コンストラクター。 効果: 次元サイズの TypeListT の 各 bounds_t のデフォルト値を使用して n_bounds_t を構築します。一般に、すべての bounds_t の LowerT と UpperT が fixed<NumberT> の場合のみ正しく初期化されます。 |
|
効果: a_other から各次元の境界をコピーして n_bounds_t を構築します。 |
|
要件: DimenstionT >=0 および DimensiontT < rank。 効果: DimensionT の境界を特定します。 戻り値: 0 ベースの TypeListT の DimensionT 位置で宣言された型の、指定された DimensionT の bounds_t。 |
|
効果: すべての次元の包含的な下限を表す n_index<…> を構築します。 戻り値: n_index[get<0>().lower()] [get<1>().lower()] [get<…>().lower()] [get<row_dimension>().lower()] |
|
効果: すべての次元の排他的な上限を表す n_index<…> を構築します。 戻り値: n_index[get<0>().upper()] [get<1>(). upper ()] [get<…>(). upper ()] [get<row_dimension>().upper()] |
|
要件: a_other のランクはこのインスタンスのランクと同じ。 効果: 渡された n_bounds_t の各次元が、このオブジェクトの各次元の境界内かどうかを特定します。 戻り値: get<0>().contains(a_other.get<0>() ) && get<1>().contains(a_other.get<1>() ) && get<…>().contains(a_other.get<…>() ) && get<row_dimension>().contains(a_other.get<row_dimension>() ) |
|
要件: a_other のランクはこのインスタンスのランクと同じ。 効果: 各次元の境界が等しいか比較します。各次元の型ではなく、数値のみ比較されます。 戻り値: すべての次元の数値が等しい場合は true、そうでない場合は false。 |
|
要件: a_other のランクはこのインスタンスのランクと同じ。 効果: 各次元の境界が等しくないか比較します。各次元の型ではなく、数値のみ比較されます。 戻り値: 次元の数値が異なる場合は true、そうでない場合は false。 |
|
要件: a_other のランクはこのインスタンスのランクと同じ。 効果: 各次元の境界に a_offset からその次元のオフセットを足して、各次元の型と境界値を特定して n_bound_t を構築します。 戻り値: n_bounds[get<0>() + a_offset.get<0>()] [get<1>() + a_offset.get<1>()] [get<…>() + a_offset.get<…>()] [get<row_dimension>() + a_offset.get< row_dimension>()] |
|
要件: DimenstionT >=0 および DimensiontT <= rank。 効果: このインスタンスの右端の DimensionT 値をコピーして、低いランクで n_bounds_t を構築します。 戻り値: n_bounds[get<rank - DimensionT>()] [get<rank + 1 - DimensionT>()] [get<…>()] [get<row_dimension>()] |
|
要件: a_other のランク <= ランク。 効果: 右端の次元の値を a_other からコピーし、このインスタンスの右端の次元の上に a_other を重ねて、n_bounds_t のコピーを構築します。 戻り値 n_bounds[get<0>()] [get<1 >()] [get<…>()] [get<rank-a_other::rank>()] [a_other.get<0>()] [a_other.get<…>()] [a_other.get<a_other::row_dimension>()] |
次の表は、n_bounds_t の friend 関数の情報です。
friend 関数 |
説明 |
---|---|
|
効果: a_bounds_list の値の文字列表現を a_output_stream に追加します。 戻り値: チェーン呼び出しの a_output_stream への参照。 |