インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
プリミティブの 1 次元コンテナーの配列構造体 (SoA) メモリーレイアウト用のテンプレート・クラスです。
#include <sdlt/soa1d_container.h>
template<typename PrimitiveT,
int AlignD1OnIndexT = 0,
class AllocatorT = allocator::default_alloc>
class soa1d_container;
typename PrimitiveT |
配列の各要素の型。 |
int AlignD1OnIndexT = 0 |
[オプション] データアクセスがアライメントされるインデックス (ステンシル向け) |
class AllocatorT = allocator::default_alloc |
[オプション] 使用されるアロケーターの型。 現在、allocator::default_alloc のみサポートされています。 |
内部的に配列構造体 (SoA) メモリーレイアウトを使用するプリミティブ要素の動的サイズ調整コンテナー。次のものを提供します。
メンバー |
説明 |
---|---|
|
コンテナーのメソッドのサイズ指定に使用する型。 |
|
このコンテナーの accessor にエイリアスされたテンプレート。 |
|
このコンテナーの const_accessor にエイリアスされたテンプレート。 |
メンバーの型 |
説明 |
---|---|
|
オプションで指定されるアロケーター・インスタンスを使用して、size_d1 要素の初期化されていないコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
オプションで指定されるアロケーター・インスタンスを使用して、size_d1 要素のコンテナーを構築し、各要素を a_value で初期化します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
オプションで指定されるアロケーター・インスタンスを使用して、other の各要素を同じ順序でコピーしてコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
オプションで指定されるアロケーター・インスタンスを使用して、配列 other_array から number_of_elements 要素を同じ順序でコピーしてコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
オプションで指定されるアロケーター・インスタンスを使用して、範囲 [a_begin-an_end) の要素にその範囲の対応する要素から値を同じ順序でコピーしてコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
戻り値: 要素の個別のコピーを含む新しい soa1d_container インスタンス。 |
|
new_size_d1 要素を含めるようにコンテナーのサイズを調整します。新しいサイズが現在のコンテナーサイズよりも大きい場合、新しい要素は初期化されません。 |
|
戻り値: 組込みインデックス offset を含まない accessor。 |
|
戻り値: 組込みインデックス offset に基づく整数ベースの accessor。 |
|
戻り値: 組込みインデックス offset に基づく aligned_offset<IndexAlignmentT> ベースの accessor。 |
|
戻り値: 組込みインデックス offset に基づく fixed_offset<OffsetT> ベースの accessor。 |
|
戻り値: 組込みインデックス offset を含まない const_accessor。 |
|
戻り値: 組込みインデックス offset に基づく整数ベースの const_accessor。 |
|
戻り値: 組込みインデックス offset に基づく aligned_offset<IndexAlignmentT> ベースの const_accessor。 |
|
戻り値: 組込みインデックス offset に基づく fixed_offset<OffsetT> ベースの const_accessor。 |
STL との互換性
上の表のパフォーマンス重視のインターフェイスに加えて、soa1d_container はパフォーマンスよりも統合を重視した std::vector インターフェイスのサブセットを実装します。インポート/エクスポートのみという制約により、オブジェクトへの参照を返すことはできません。代わりに、iterators と operator[] はプロキシー・オブジェクトを返し、その他の "const' メソッドは "value_type const" を返します。さらに、iterators は -> 演算子をサポートしていません。この制約にもかかわらず、iterators は STL アルゴリズムに渡すことができます。また、パフォーマンス上の理由から、resize は新しい要素を初期化しません。次の std::vector インターフェイス・メソッドが実装されます。
size、max_size、capacity、empty、reserve、shrink_to_fit
assign、push_back、pop_back、clear、insert、emplace、erase
cbegin、cend、begin、end、begin、end、crbegin、crend、rbegin、rend、rbegin、rend
operator[]、front() const、back() const、at() const
swap、==、!=
swap、soa1d_container(soa1d_container&& donor)、soa1d_container & operator=(soa1d_container&& donor)