インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
n_bounds_t を簡単に作成できるようにします。#include <sdlt/n_bounds.h>
template<typename... TypeListT>
class n_bounds_generator;
namespace {
// ジェネレーター・オブジェクトのインスタンス
n_bounds_generator<> n_bounds;
}
ジェネレーター・オブジェクトは、bounds_t<LowerT, UpperT> 値に再帰的な構築演算子 [] を提供し、n_bounds_t<…> のインスタンスを 1 次元ずつ作成できるようにします。その主な目的は、C の多次元配列定義に似た構文の使用を可能にすることです。
ジェネレーター・オブジェクトとファクトリー関数を使用しないでインスタンス化する場合:
n_bounds_t<bounds_t<fixed<540>, fixed<1080>>,
bounds_t<fixed<960>, fixed<1920>>> bounds1(bounds_t<540_fixed,1080_fixed>(),
bounds_t<960_fixed, 1920_fixed>));
n_bounds_t<bounds_t<int, int>,
bounds_t<int, int>> bounds2(bounds_t<int, int>(540,960),
bounds_t<int, int>(960, 1920));
ジェネレーター・オブジェクトとファクトリー関数を使用してインスタンス化する場合:
auto bounds1 = n_bounds[bounds(540_fixed, 1080_fixed)]
[bounds(960_fixed, 1920_fixed)];
auto bounds2 = n_bounds[bounds(540, 1080)]
[bounds(960, 1920)];
または、n_index_t および n_extent_t ジェネレーター・オブジェクトと演算子 () を使用する場合:
auto bounds1 = n_bounds(n_index[540_fixed][960_fixed],
n_extent[540_fixed][960_fixed]);
auto bounds2 = n_bounds(n_index[540][960],
n_extent[540][960]);
クラス階層
n_bounds_generator<…> は、n_bounds_t<...> のみから派生し、データメンバーまたは引数として直接使用されることは想定されていません。ジェネレーター・オブジェクト n_bounds は、n_bounds_t<…> が想定される場所では自動的にダウンキャストされます。
次の表は、n_bounds_generator のテンプレート引数の情報です。
テンプレート引数 |
説明 |
---|---|
|
型のカンマ区切りリスト。型の数がジェネレーターの次元数を制御します。リスト中の各型は、対応する次元の境界を示します。次元の順番は、C++ の多次元配列の添字と同じ (左端から右端) です。 要件: リストに含まれる型は bounds_t<LowerT, UpperT>。 |
次の表は、n_bounds_t から継承される型に加えて、n_bounds_generator のメンバーとして定義されている型の情報です。
メンバーの型 |
説明 |
---|---|
|
チェーン表記の [] 演算子の呼び出しにより生成された型の値。 |
次の表は、n_bounds_t から継承されるメンバーに加えて、n_bounds_generator のメンバーの情報です。
メンバー |
説明 |
---|---|
|
要件: TypeListT は空。 効果: 境界が指定されていないジェネレーターを構築します。 |
|
効果: a_other から境界の値をコピーしてジェネレーターを構築します。 |
|
効果: n_bounds_generator<…> と右端の bounds_t<LowerT, UpperT> ベースの次元を構築します。 戻り値: n_bounds_generator<TypeListT..., bounds_t< LowerT, UpperT >>。 |
|
要件: a_indices のランクは a_extents のランクと同じで、TypeListT は空。 効果: n_bounds_generator<…> を構築します。n 下限は a_indices によって指定され、n 上限は a_extents + a_indices。 戻り値: n_bounds[bounds(a_indices.get<0>(), a_indices.get<0>() + a_extents.get<0>())] [bounds(a_indices.get<1>(), a_indices.get<1>() + a_extents.get<1>())] [bounds(a_indices.get<…>(), a_indices.get<…>() + a_extents.get<…>())] [bounds( a_indices.get<row_dimension>(), a_indices.get< row_dimension >() + a_extents.get<row_dimension >())] |
|
戻り値: n_bounds_t<…> とジェネレーターにより集約された多次元境界の適切な型と値。 |