#ifndef SPROUT_ALGORITHM_FIXED_FILL_N_HPP #define SPROUT_ALGORITHM_FIXED_FILL_N_HPP #include #include #include #include #include #include #include #include namespace sprout { namespace fixed { namespace detail { template inline SPROUT_CONSTEXPR typename std::enable_if< sprout::is_fixed_container::value, typename sprout::fixed::result_of::algorithm::type >::type fill_n(Container const& cont, Size n, T const& value) { return sprout::fixed::detail::fill_impl( cont, value, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(cont), n ); } template inline SPROUT_CONSTEXPR typename std::enable_if< !sprout::is_fixed_container::value, typename sprout::fixed::result_of::algorithm::type >::type fill_n(Container const& cont, Size n, T const& value) { return sprout::remake( cont, n, sprout::value_iterator(value, n), sprout::value_iterator(value, 0) ); } } // namespace detail // // fill_n // template inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type fill_n(Container const& cont, Size n, T const& value) { return sprout::fixed::detail::fill_n(cont, n, value); } template inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type fill_n(Size n, T const& value) { return sprout::fixed::fill_n(sprout::pit(), n, value); } } // namespace fixed using sprout::fixed::fill_n; } // namespace sprout #endif // #ifndef SPROUT_ALGORITHM_FIXED_FILL_N_HPP