#ifndef SPROUT_DETAIL_ALGORITHM_COUNT_N_HPP #define SPROUT_DETAIL_ALGORITHM_COUNT_N_HPP #include #include #include namespace sprout { namespace detail { // // count_n // template inline SPROUT_CONSTEXPR typename std::iterator_traits::difference_type count_n( InputIterator first, Size n, T const& value ) { return n == 0 ? 0 : (*first == value ? 1 : 0) + sprout::detail::count_n(sprout::next(first), n - 1, value) ; } } // namespace detail } // namespace sprout #endif // #ifndef SPROUT_DETAIL_ALGORITHM_COUNT_N_HPP