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

レイアウト

sdlt::layout 名前空間

データレイアウトごとに異なるコンテナー型ではなく、SDLT は layout 名前空間の型を n_container のテンプレート引数として使用します。

利用可能なレイアウトは layout 名前空間で定義されており、次の表はそれらをまとめたものです。

レイアウト 説明
template <typename AlignOnColumnIndexT=0>
layout::soa
配列構造体 (SoA): プリミティブの各データメンバーが N 次元配列を保持しています。配列は、連続するバッファーに配置されます。テンプレート引数 AlignOnColumnIndexT は、キャッシュライン境界でアライメントすべき行次元の列を識別します。各行の AlignOnColumnIndexT は、キャッシュライン境界でアライメントされます。
template <typename AlignOnColumnIndexT>
layout::soa_per_row

行ごとの配列構造体 (SoA): プリミティブの各データメンバーが連続して配置された行次元の 1 次元配列 (SoA1D) を保持しています。各行の AlignOnColumnIndexT は、キャッシュライン境界でアライメントされます。これらの SoA1D は残りの次元に合わせて連続して配置され、行の範囲をサイズとする効率良い配列構造体配列になります。配列構造体配列は、行の範囲が fixed<NumberT> の場合に特に効率的です。

: コンパイル時に行のサイズが不明な場合は、fixed<Number> の次元を追加し、行を fixed<NumberT> で分割することを検討してみてください。

layout::aos_by_struct
構造体によりアクセスされる構造体配列 (AoS): プリミティブは、ネイティブ形式でメモリーに連続して配置され、構造体またはメンバーによってアクセスされます。入れ子の構造体は、入れ子構造に従って構造体メンバーにアクセスします。
layout::aos_by_stride
ストライドによりアクセスされる構造体配列 (AoS): プリミティブは、ネイティブ形式でメモリーに連続して配置され、ビルトイン型へのポインターによりストライドを使用してアクセスされます。aos_by_struct がベクトル化されない場合に役立ちます。

説明

クラスは空で、特定のレイアウト向けにコンテナーを特殊化するためのものです。