@@ -384,6 +384,31 @@ Sorting, Merge, and Heap Operations
384384 std::ranges::borrowed_iterator_t<R>
385385 stable_sort (ExecutionPolicy&& pol, R&& r, Comp comp = {}, Proj proj = {});
386386
387+ // partial_sort
388+ template <typename ExecutionPolicy, std::ranges::random_access_range R,
389+ typename Comp = std::ranges::less, typename Proj = std::identity>
390+ requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
391+ std::ranges::sized_range<R> && std::sortable<std::ranges::iterator_t<R>, Comp, Proj>
392+ std::ranges::borrowed_iterator_t<R>
393+ partial_sort (ExecutionPolicy&& pol, R&& r, std::ranges::iterator_t<R> middle,
394+ Comp comp = {}, Proj proj = {});
395+
396+ // partial_sort_copy
397+ template <typename ExecutionPolicy, std::ranges::random_access_range R,
398+ std::ranges::random_access_range OutR, typename Comp = std::ranges::less,
399+ typename Proj1 = std::identity, typename Proj2 = std::identity>
400+ requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
401+ std::ranges::sized_range<R> && std::ranges::sized_range<OutR> &&
402+ std::indirectly_copyable<std::ranges::iterator_t<R>, std::ranges::iterator_t<OutR>> &&
403+ std::sortable<std::ranges::iterator_t<OutR>, Comp, Proj2> &&
404+ std::indirect_strict_weak_order<Comp,
405+ std::projected<std::ranges::iterator_t<R>, Proj1>,
406+ std::projected<std::ranges::iterator_t<OutR>, Proj2> >
407+ std::ranges::partial_sort_copy_result<std::ranges::borrowed_iterator_t<R>,
408+ std::ranges::borrowed_iterator_t<OutR>>
409+ partial_sort_copy (ExecutionPolicy&& pol, R&& r, OutR&& result, Comp comp = {},
410+ Proj1 proj1 = {}, Proj2 proj2 = {});
411+
387412 // is_sorted
388413 template <typename ExecutionPolicy, std::ranges::random_access_range R,
389414 typename Proj = std::identity,
0 commit comments