Header file range/v3/algorithm/aux_/equal_range_n.hpp

#include <range/v3/range_fwd.hpp>

#include <range/v3/begin_end.hpp>

#include <range/v3/distance.hpp>

#include <range/v3/range_concepts.hpp>

#include <range/v3/range_traits.hpp>

#include <range/v3/iterator_range.hpp>

#include <range/v3/utility/iterator.hpp>

#include <range/v3/utility/functional.hpp>

#include <range/v3/algorithm/aux_/lower_bound_n.hpp>

#include <range/v3/algorithm/aux_/upper_bound_n.hpp>

#include <range/v3/utility/static_const.hpp>

namespace ranges
{
    inline namespace v3
    {
        namespace aux
        {
            struct equal_range_n_fn
            {
                template <typename I, typename V, typename R = ordered_less, typename P = ident, int _concept_requires_38 = 42, typename std::enable_if<(_concept_requires_38==43)||(BinarySearchable<I, V, R, P>()), int>::type=0>
                iterator_range<I> operator()(I begin, iterator_difference_t<I> dist, V const& val, R pred_ = R{}, P proj_ = P{}) const;
            };
            
            inline namespace 
            {
                constexpr auto& equal_range_n = static_const<equal_range_n_fn>::value;
            }
        }
    }
}