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

#include <range/v3/range_fwd.hpp>

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

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

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

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

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

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

namespace ranges
{
    inline namespace v3
    {
        namespace aux
        {
            struct merge_n_with_buffer_fn
            {
                template <typename I, typename B, typename C = ordered_less, typename P = ident, typename VI = iterator_common_reference_t<I>, typename VB = iterator_common_reference_t<B>, int _concept_requires_51 = 42, typename std::enable_if<(_concept_requires_51==43)||(Same<VI, VB>()&&IndirectlyCopyable<I, B>()&&Mergeable<B, I, I, C, P, P>()), int>::type=0>
                I operator()(I begin0, iterator_difference_t<I> n0, I begin1, iterator_difference_t<I> n1, B buff, C r = C{}, P = P{}) const;
            };
            
            inline namespace 
            {
                constexpr auto& merge_n_with_buffer = static_const<merge_n_with_buffer_fn>::value;
            }
        }
    }
}