インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
N 次元コンテナーのテンプレート・クラスです。プリミティブ型、メモリーレイアウト、コンテナーの形状は、テンプレート引数により定義されます。
template <typename PrimitiveT,
typename LayoutT,
typename ExtentsT,
typename AllocatorT >
class n_container;
メモリーレイアウトと形状が事前定義されている PrimitiveT 要素の N 次元コンテナー。SIMD ループ内で柔軟に効率良くデータアクセスするのに適したアクセサー・インターフェイスを提供します。
次の表は、n_container のテンプレート引数の情報を示します。
テンプレート引数 |
説明 |
---|---|
typename PrimitiveT |
多次元コンテナーの各セルに格納する型。 要件: PrimitiveT は、SDLT_PRIMITIVE マクロで宣言済みでなければなりません。 |
typename LayoutT |
コンテナーのセルのインメモリー・データ・レイアウト。 要件: LayoutT は、layout 名前空間のクラスでなければなりません。 |
typename ExtentsT |
コンテナーの形状。 要件: ExtentsT は、n_extent_t 可変個引数テンプレートの具象型でなければなりません。 |
class AllocatorT = allocator::default_alloc |
[オプション] 使用される allocator の型。 現在、allocator::default_alloc のみサポートされています。 |
次の表は、n_container のメンバーとして定義されている型の情報です。
メンバーの型 |
説明 |
---|---|
typedef PrimitiveT primitive_type; |
コンテナーの各セル内の型。 |
typedef PrimitiveT allocator_type; |
コンテナーで使用されるアロケーターの型。 |
typedef implementation-defined accessor |
このコンテナーの読み書きができる accessor の型。 |
typedef implementation-defined const_accessor; |
このコンテナーの読み書きができる const_accessor の型。 |
次の表は、n_container のメソッドの情報です。
メンバー |
説明 |
---|---|
n_container ( const ExtentsT &a_extents, buffer_offset_in_cachelines buffer_offset = buffer_offset_in_cachelines(0), const AllocatorT &an_allocator = AllocatorT()) |
オプションで指定されるアロケーター・インスタンスを使用して、a_extents で定義された形状の初期化されていないコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
n_container (buffer_offset_in_cachelines buffer_offset = buffer_offset_in_cachelines(0), const AllocatorT &an_allocator = AllocatorT()) |
オプションで指定されるアロケーター・インスタンスを使用して、テンプレート引数 ExtentsT で定義された形状の初期化されていないコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 ExtentsT は、デフォルト・コンストラクターでなければなりません。ExtentsT が fixed<NumberT> 型のみを含む場合に使用します。 |
n_container(n_container&& donor) |
ドナーが現在所有しているバッファーと編成 (該当する場合) の所有権を譲渡します。ドナーの accessors はすべて無効になります。 |
n_container & operator = (n_container&& donor) |
既存のバッファーを解放し、ドナーが現在所有しているバッファーと編成 (該当する場合) の所有権を譲渡します。ドナーの accessors はすべて無効になります。 戻り値: このインスタンスの参照。 |
const ExtentsT& n_extent () const |
コンテナーの形状を提供します。テンプレート関数 extent_d<int DimenstionT>(const n_container &) を利用することもできます。 戻り値: コンテナーの形状を表す ExtentsT インスタンスへの const 参照。 |
const_accessor const_access(); |
コンテナー内のセルを読み取るデータ編成に応じて const_accessor を構築します。 戻り値: コンテナーの const_accessor。 |
accessor access(); |
コンテナー内のセルを読み書きするデータ編成に応じて accessor を構築します。 戻り値: コンテナーの accessor |
次の表は、n_container の friend 関数の情報です。
friend 関数 | 説明 |
---|---|
std::ostream& operator << (std::ostream& output_stream, const n_container & a_container) |
a_container の範囲値の文字列表現を a_output_stream に追加します。 戻り値: チェーン呼び出しの a_output_stream への参照。 |