インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
n_extent_t オブジェクトを簡単に作成できるようにします。
template<typename... TypeListT>
class n_extent_generator;
namespace {
// ジェネレーター・オブジェクトのインスタンス
n_extent_generator<> n_extent;
}
ジェネレーター・オブジェクトは、fixed<>、aligned<>、integer 値に再帰的な構築演算子 [] を提供し、n_extent_t <…> のインスタンスを 1 次元ずつ作成できるようにします。 その主な目的は、C の多次元配列定義に似た構文の使用を可能にすることです。
3 つの n_extent_t インスタンスを作成する例とジェネレーター・オブジェクトを使用して同等のインスタンスを作成する例を比べてみます。
n_extent_t<int, int> ext1(height, width);
n_extent_t<int, aligned<128>> ext2(height, width);
n_extent_t<fixed<1080>, fixed<1920>> ext3(1080_fixed, 1920_fixed);
auto ext1 = n_extent[height][width];
auto ext2 = n_extent[height][aligned<128>(width)];
auto ext3 = n_extent[1080_fixed][1920_fixed];
クラス階層
n_extent_generator < … > は、n_extent_t <...> のみから派生し、データメンバーまたは引数として直接使用されることは想定されていません。ジェネレーター・オブジェクト n_extent は、n_extent_t<…> が想定される場所では自動的にダウンキャストされます。
次の表は、n_extent_generator のテンプレート引数を示します。
テンプレート引数 | 説明 |
---|---|
typename... TypeListT |
型のカンマ区切りリスト。型の数が現在のジェネレーターの次元数を制御します。リスト中の各型は、対応する次元のサイズを示します。次元の順番は、C++ の多次元配列の添字と同じ (左端から右端) です。 要件: int、fixed<NumberT>、または aligned<AlignmentT> 型。 |
次の表は、n_extent_t から継承される型に加えて、n_extent_generator のメンバーとして定義されている型の情報です。
メンバーの型 | 説明 |
---|---|
typedef n_extent_t<TypeListT...> value_type |
チェーン表記の [] 演算子の呼び出しにより生成された型の値。 |
次の表は、n_extent_t から継承されるメンバーに加えて、n_extent_generator のメンバーの情報です。
メンバー | 説明 |
---|---|
n_extent_generator () |
要件: TypeListT は空。 効果: 範囲が指定されていないジェネレーターを構築します。 |
n_extent_generator (const n_extent_generator &a_other) |
効果: a_other から範囲の値をコピーしてジェネレーターを構築します。 |
n_extent_generator<TypeListT..., int> operator [] (int a_size) const |
要件: a_size >= 0。 戻り値: n_extent_generator<…> と右端の整数ベースの範囲。 |
n_extent_generator<TypeListT..., fixed<NumberT>> operator [] (fixed<NumberT> a_size) const |
要件: a_size >= 0。 戻り値: n_extent_generator<…> と右端の rightmost fixed<NumberT> 範囲。 |
n_extent_generator<TypeListT..., aligned<AlignmentT>> operator [] (aligned<AlignmentT> a_size) |
要件: a_size >= 0。 戻り値: n_extent_generator<…> と右端の aligned<AlignmentT> ベースの範囲。 |
value_type value() const |
戻り値: n_extent_t<…> とジェネレーターにより集約された多次元範囲の適切な型と値。 |