#ifndef SPROUT_PIT_CONTAINER_HPP #define SPROUT_PIT_CONTAINER_HPP #include #include #include #include #include namespace sprout { // // container_construct_traits // template struct container_construct_traits > { public: typedef typename sprout::container_construct_traits::copied_type copied_type; public: template static SPROUT_CONSTEXPR copied_type deep_copy(Cont&& cont) { return copied_type(); } template static SPROUT_CONSTEXPR copied_type make(Args&&... args) { return sprout::make(sprout::forward(args)...); } template static SPROUT_CONSTEXPR copied_type remake( Cont&& cont, typename sprout::container_traits >::difference_type size, Args&&... args ) { return sprout::remake(sprout::forward(cont), size, sprout::forward(args)...); } }; // // container_transform_traits // template struct container_transform_traits > { public: template >::size_type Size> struct rebind_size { public: typedef sprout::pit< typename sprout::container_transform_traits::template rebind_size::type > type; }; }; } // namespace sprout #endif // #ifndef SPROUT_PIT_CONTAINER_HPP