28 #ifndef RANGES_V3_ALGORITHM_AUX_SORT_N_WITH_BUFFER_HPP
29 #define RANGES_V3_ALGORITHM_AUX_SORT_N_WITH_BUFFER_HPP
41 #include <range/v3/utility/static_const.hpp>
43 #include <range/v3/detail/prologue.hpp>
51 template(
typename I,
typename B,
typename C =
less,
typename P =
identity)(
52 requires same_as<iter_common_reference_t<I>,
53 iter_common_reference_t<B>> AND
54 indirectly_copyable<I, B> AND mergeable<B, I, I, C, P, P>)
55 I operator()(I
first, iter_difference_t<I> n, B buff, C r = C{}, P p = P{})
60 return next(
first, n);
61 I m = (*this)(
first, half, buff, r, p);
62 (*this)(m, n - half, buff, r, p);
63 return merge_n_with_buffer(
first, half, m, n - half, buff, r, p);
71 #include <range/v3/detail/epilogue.hpp>
RANGES_INLINE_VARIABLE(detail::to_container_fn< detail::from_range< std::vector >>, to_vector) template< template< typename... > class ContT > auto to(RANGES_HIDDEN_DETAIL(detail
For initializing a container of the specified type with the elements of an Range.
Definition: conversion.hpp:399
front< Pair > first
Retrieve the first element of the pair Pair.
Definition: meta.hpp:2251
bool_<(T::type::value< U::type::value)> less
A Boolean integral constant wrapper around true if T::type::value is less than U::type::value; false,...
Definition: meta.hpp:255
Definition: sort_n_with_buffer.hpp:50
Definition: identity.hpp:25