インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

形状

可変個引数テンプレート・クラス n_extent_t は、n_dimensional コンテナーの形状 (次元の数と各次元のサイズ) を表します。

構文

template<typename... TypeListT>
class n_extent_t

説明

n_extent_t は、コンテナーの形状を各次元のサイズのシーケンスで表します。各次元のサイズは、異なる型で表現できます。この柔軟性のため、同じインターフェイスを利用して、コンパイル時にすべての次元が分かっている場合は fixed<int NumberT> で、実行時に判明する場合は int で、そして実行時に必ず判明する場合は aligned<int Alignment> の倍数で n_extents_t を宣言できます。詳細は、「数値表現」を参照してください。

次の表は、n_extent_t のテンプレート引数の情報です。

テンプレート引数

説明

typename... TypeListT

型のカンマ区切りリスト。型の数がジェネレーターの次元数を制御します。リスト中の各型は、対応する次元のサイズを示します。次元の順番は、C++ の多次元配列の添字と同じ (左端から右端) です。

通常の C++ 添字順 (外側から内側) で対応する次元サイズ (範囲) を示す各値は、intfixed<NumberT>、または aligned<AlignmentT> 型でなければなりません。

次の表は、n_extent_t のメンバーの情報です。

メンバー

説明

static constexpr int rank;

次元数。

static constexpr int row_dimension = rank-1;
最後の次元 row のインデックス。
n_extent_t()

要件: TypeListT のすべての型はデフォルト・コンストラクター。

効果: 次元サイズに対する TypeListT の各型のデフォルト値を使用して、n_extent_t を構築します。一般に、すべての型が fixed<NumberT> の場合のみ正しく初期化されます。

n_extent_t(const n_extent_t &a_other)

効果: a_other から各次元のサイズをコピーして n_exent_t を構築します。

explicit n_extent_t(const TypeListT & … a_values)

効果: 引数として渡された a_values のリストの対応する値で各次元を初期化して、n_exent_t を構築します。a_values は、長さと型が TypeListT によって定義される値のカンマ区切りリストです。

template<int DimensionT> auto get() const

要件: DimenstionT >=0 および DimensiontT < rank。

効果: DimensionT の範囲を特定します。

戻り値: 0 ベースの TypeListT の DimensionT 位置で宣言された型の、指定された DimensionT の範囲。

template<int DimensionT> 
auto rightmost_dimensions() const

要件: DimenstionT >=0 および DimensiontT < rank。

効果: このインスタンスの右端の DimensionT 値をコピーして、低いランクで n_extent_t を構築します。

戻り値: n_exent[get<rank - DimensionT>()]

[get<rank + 1 - DimensionT>()]

[get<…>()]

[get<row_dimension>()]

template<class... OtherTypeListT>
bool operator == (const n_extent_t<OtherTypeListT...> a_other) const

要件: a_other のランクはこのインスタンスのランクと同じ。

効果: 各次元のサイズが等しいか比較します。各次元の型ではなく、数値のみ比較されます。

戻り値: すべての次元の数値が等しい場合は true、そうでない場合は false

template<class... OtherTypeListT>
bool operator != (const n_extent_t<OtherTypeListT...> a_other) const

要件: a_other のランクはこのインスタンスのランクと同じ。

効果: 各次元のサイズが等しくないか比較します。 各次元の型ではなく、数値のみ比較されます。

戻り値: 次元の数値が異なる場合は true、そうでない場合は false

size_t size() const

戻り値: 範囲によって指定された要素の数。

効果: 各次元の現在の範囲の値を掛け合わせてセルの数を計算します。

戻り値: get<0>()*get<1>()*get<…>()*get<rank-1>()

次の表は、n_extent_t の friend 関数の情報です。

friend 関数

説明

std::ostream& operator << (std::ostream& output_stream, const n_extent_t & a_extents)

効果: a_extents の値の文字列表現を a_output_stream に追加します。

戻り値: チェーン呼び出しの a_output_stream への参照。