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

make_ n_container テンプレート関数

渡された n_extent_t に基づいて、適切な型の n_container<…> のインスタンスを作成するファクトリー関数です。

構文

template<
    typename PrimitiveT,
    typename LayoutT,
    typename AllocatorT = allocator::default_alloc,
    typename ExtentsT
>
auto make_n_container(const ExtentsT &_extents)
->n_container<PrimitiveT, LayoutT, ExtentsT, AllocatorT>

説明

make_n_container を使用することで、テンプレート引数の推定を利用して n 次元のコンテナーをより簡単に作成し、範囲の型指定を回避できます。

以下は、高解像度のイメージ・オブジェクトをインスタンス化する例です。

typedef n_container<RGBAs, layout::soa, 
                    n_extent_t<int, int>> HdImage;
HdImage image1(n_extent[1080][1920]);

次のように、ファクトリー関数と C++11 のキーワード auto を一緒に使用することもできます。

auto image1 = make_n_container<RGBAs, 
                          layout::soa>(n_extent[1080][1920]);