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
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);