Header file range/v3/algorithm/aux_/merge_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/utility/functional.hpp>

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

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

#include <range/v3/algorithm/copy_n.hpp>

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

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

#include <range/v3/algorithm/tagspec.hpp>

namespace ranges
{
    inline namespace v3
    {
        namespace aux
        {
            struct merge_n_fn
            {
                template <typename I0, typename I1, typename O, typename C = ordered_less, typename P0 = ident, typename P1 = ident, int _concept_requires_55 = 42, typename std::enable_if<(_concept_requires_55==43)||(Mergeable<I0, I1, O, C, P0, P1>()), int>::type=0>
                tagged_tuple<tag::in1(I0), tag::in2(I1), tag::out(O)> operator()(I0, I1, O, I0 begin0, iterator_difference_t<I0> n0, I1 begin1, iterator_difference_t<I1> n1, O out, C r = C{}, P0 p0 = P0{}, P1 p1 = P1{}) const;
            };
            
            inline namespace 
            {
                constexpr auto& merge_n = static_const<merge_n_fn>::value;
            }
        }
    }
}