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

n_container

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 への参照。