# make_ n_container template function

Factory function to construct an instance of a properly-typed n_container<…> based on n_extent_t passed to it.

## Syntax

    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>

## Description

Use make_n_container to more easily create an n-dimensional container using template argument deduction, and avoid specifying the type of extents.

An example of the instantiation of a High Definition image object is below.

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

Alternatively, it is possible to use factory function with the C++11 keyword auto, as shown below.

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

Parent topic: n_container