ranges_algo.h File Reference

Go to the source code of this file.

## Namespaces

namespace | std

## Typedefs

template<typename _Fp>
using | std::ranges::__detail::__by_ref_or_value_fn
template<typename _Iter1, typename _Iter2, typename _Out>
using | std::ranges::binary_transform_result
template<typename _Iter, typename _Out>
using | std::ranges::copy_if_result
template<typename _Iter, typename _Fp>
using | std::ranges::for_each_n_result
template<typename _Iter, typename _Fp>
using | std::ranges::for_each_result
template<typename _Iter1, typename _Iter2, typename _Out>
using | std::ranges::merge_result
template<typename _Iter>
using | std::ranges::minmax_element_result
template<typename _Tp>
using | std::ranges::minmax_result
template<typename _Iter>
using | std::ranges::next_permutation_result
template<typename _Iter, typename _Out>
using | std::ranges::partial_sort_copy_result
template<typename _Iter, typename _Out1, typename _Out2>
using | std::ranges::partition_copy_result
template<typename _Iter>
using | std::ranges::prev_permutation_result
template<typename _Iter, typename _Out>
using | std::ranges::remove_copy_if_result
template<typename _Iter, typename _Out>
using | std::ranges::remove_copy_result
template<typename _Iter, typename _Out>
using | std::ranges::replace_copy_if_result
template<typename _Iter, typename _Out>
using | std::ranges::replace_copy_result
template<typename _Iter, typename _Out>
using | std::ranges::reverse_copy_result
template<typename _Iter, typename _Out>
using | std::ranges::rotate_copy_result
template<typename _Iter, typename _Out>
using | std::ranges::set_difference_result
template<typename _Iter1, typename _Iter2, typename _Out>
using | std::ranges::set_intersection_result
template<typename _Iter1, typename _Iter2, typename _Out>
using | std::ranges::set_symmetric_difference_result
template<typename _Iter1, typename _Iter2, typename _Out>
using | std::ranges::set_union_result
template<typename _Iter1, typename _Iter2>
using | std::ranges::swap_ranges_result
template<typename _Iter, typename _Out>
using | std::ranges::unary_transform_result
template<typename _Iter, typename _Out>
using | std::ranges::unique_copy_result

## Functions

template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__adjust_heap (_Iter __first, iter_difference_t< _Iter > __holeIndex, iter_difference_t< _Iter > __len, iter_value_t< _Iter > __value, _Comp __comp)
template<typename _Iter, typename _Distance, typename _Compare>
constexpr void | std::ranges::__detail::__chunk_insertion_sort (_Iter __first, _Iter __last, _Distance __chunk_size, _Compare __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__final_insertion_sort (_Iter __first, _Iter __last, _Comp __comp)
template<typename _Iter, typename _Pred, typename _Distance>
constexpr _Iter | std::ranges::__detail::__find_if_not_n (_Iter __first, _Distance &__len, _Pred __pred)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__heap_select (_Iter __first, _Iter __middle, _Iter __last, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__inplace_stable_sort (_Iter __first, _Iter __last, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__insertion_sort (_Iter __first, _Iter __last, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__introselect (_Iter __first, _Iter __nth, _Iter __last, iter_difference_t< _Iter > __depth_limit, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__introsort_loop (_Iter __first, _Iter __last, unsigned __depth_limit, _Comp __comp)
template<typename _Comp, typename _Proj>
constexpr _Comp_proj< _Comp, _Proj > | std::ranges::__detail::__make_comp_proj (_Comp &__comp, _Proj &__proj)
template<typename _Pred, typename _Proj>
constexpr _Pred_proj< _Pred, _Proj > | std::ranges::__detail::__make_pred_proj (_Pred &__pred, _Proj &__proj)
template<typename _Iter, typename _Pointer, typename _Comp>
void | std::ranges::__detail::__merge_adaptive (_Iter __first, _Iter __middle, _Iter __last, iter_difference_t< _Iter > __len1, iter_difference_t< _Iter > __len2, _Pointer __buffer, _Comp __comp)
template<typename _Iter, typename _Distance, typename _Pointer, typename _Comp>
void | std::ranges::__detail::__merge_adaptive_resize (_Iter __first, _Iter __middle, _Iter __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size, _Comp __comp)
template<typename _Iter, typename _Out, typename _Distance, typename _Comp>
void | std::ranges::__detail::__merge_sort_loop (_Iter __first, _Iter __last, _Out __result, _Distance __step_size, _Comp __comp)
template<typename _Iter, typename _Pointer, typename _Comp>
void | std::ranges::__detail::__merge_sort_with_buffer (_Iter __first, _Iter __last, _Pointer __buffer, _Comp __comp)
template<typename _Iter, typename _Distance, typename _Comp>
constexpr void | std::ranges::__detail::__merge_without_buffer (_Iter __first, _Iter __middle, _Iter __last, _Distance __len1, _Distance __len2, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__move_median_to_first (_Iter __result, _Iter __a, _Iter __b, _Iter __c, _Comp __comp)
template<typename _Iter, typename _Out, typename _Comp>
_Out | std::ranges::__detail::__move_merge (_Iter __first1, _Iter __last1, _Iter __first2, _Iter __last2, _Out __result, _Comp __comp)
template<typename _Iter1, typename _Iter2, typename _Out, typename _Comp>
void | std::ranges::__detail::__move_merge_adaptive (_Iter1 __first1, _Iter1 __last1, _Iter2 __first2, _Iter2 __last2, _Out __result, _Comp __comp)
template<typename _Iter1, typename _Iter2, typename _Iter3, typename _Comp>
void | std::ranges::__detail::__move_merge_adaptive_backward (_Iter1 __first1, _Iter1 __last1, _Iter2 __first2, _Iter2 __last2, _Iter3 __result, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__partial_sort (_Iter __first, _Iter __middle, _Iter __last, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__pop_heap (_Iter __first, _Iter __last, _Iter __result, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__push_heap (_Iter __first, iter_difference_t< _Iter > __holeIndex, iter_difference_t< _Iter > __topIndex, iter_value_t< _Iter > __value, _Comp __comp)
template<typename _Iter1, typename _Iter2>
_Iter1 | std::ranges::__detail::__rotate_adaptive (_Iter1 __first, _Iter1 __middle, _Iter1 __last, iter_difference_t< _Iter1 > __len1, iter_difference_t< _Iter1 > __len2, _Iter2 __buffer, iter_difference_t< _Iter1 > __buffer_size)
template<typename _Iter, typename _Sent, typename _Pointer, typename _Pred, typename _Distance>
constexpr subrange< _Iter > | std::ranges::__detail::__stable_partition_adaptive (_Iter __first, _Sent __last, _Pred __pred, _Distance __len, _Pointer __buffer, _Distance __buffer_size)
template<typename _Iter, typename _Pointer, typename _Comp>
void | std::ranges::__detail::__stable_sort_adaptive (_Iter __first, _Iter __middle, _Iter __last, _Pointer __buffer, _Comp __comp)
template<typename _Iter, typename _Pointer, typename _Distance, typename _Comp>
void | std::ranges::__detail::__stable_sort_adaptive_resize (_Iter __first, _Iter __last, _Pointer __buffer, _Distance __buffer_size, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__unguarded_insertion_sort (_Iter __first, _Iter __last, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr void | std::ranges::__detail::__unguarded_linear_insert (_Iter __last, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr _Iter | std::ranges::__detail::__unguarded_partition (_Iter __first, _Iter __last, _Iter __pivot, _Comp __comp)
template<typename _Iter, typename _Comp>
constexpr _Iter | std::ranges::__detail::__unguarded_partition_pivot (_Iter __first, _Iter __last, _Comp __comp)
template<typename _ForwardIterator>
constexpr _ForwardIterator | std::shift_left (_ForwardIterator __first, _ForwardIterator __last, typename iterator_traits< _ForwardIterator >::difference_type __n)
template<typename _ForwardIterator>
constexpr _ForwardIterator | std::shift_right (_ForwardIterator __first, _ForwardIterator __last, typename iterator_traits< _ForwardIterator >::difference_type __n)

## Variables

constexpr int | std::ranges::__detail::__sort_threshold
constexpr __all_of_fn | std::ranges::all_of
constexpr __any_of_fn | std::ranges::any_of
constexpr __binary_search_fn | std::ranges::binary_search
constexpr __clamp_fn | std::ranges::clamp
constexpr __copy_if_fn | std::ranges::copy_if
constexpr __count_fn | std::ranges::count
constexpr __count_if_fn | std::ranges::count_if
constexpr __equal_range_fn | std::ranges::equal_range
constexpr __find_end_fn | std::ranges::find_end
constexpr __find_first_of_fn | std::ranges::find_first_of
constexpr __for_each_fn | std::ranges::for_each
constexpr __for_each_n_fn | std::ranges::for_each_n
constexpr __generate_fn | std::ranges::generate
constexpr __generate_n_fn | std::ranges::generate_n
constexpr __includes_fn | std::ranges::includes
constexpr __inplace_merge_fn | std::ranges::inplace_merge
constexpr __is_heap_fn | std::ranges::is_heap
constexpr __is_heap_until_fn | std::ranges::is_heap_until
constexpr __is_partitioned_fn | std::ranges::is_partitioned
constexpr __is_permutation_fn | std::ranges::is_permutation
constexpr __is_sorted_fn | std::ranges::is_sorted
constexpr __is_sorted_until_fn | std::ranges::is_sorted_until
constexpr __lexicographical_compare_fn | std::ranges::lexicographical_compare
constexpr __lower_bound_fn | std::ranges::lower_bound
constexpr __make_heap_fn | std::ranges::make_heap
constexpr __max_fn | std::ranges::max
constexpr __max_element_fn | std::ranges::max_element
constexpr __merge_fn | std::ranges::merge
constexpr __min_element_fn | std::ranges::min_element
constexpr __minmax_fn | std::ranges::minmax
constexpr __minmax_element_fn | std::ranges::minmax_element
constexpr __next_permutation_fn | std::ranges::next_permutation
constexpr __none_of_fn | std::ranges::none_of
constexpr __nth_element_fn | std::ranges::nth_element
constexpr __partial_sort_fn | std::ranges::partial_sort
constexpr __partial_sort_copy_fn | std::ranges::partial_sort_copy
constexpr __partition_fn | std::ranges::partition
constexpr __partition_copy_fn | std::ranges::partition_copy
constexpr __partition_point_fn | std::ranges::partition_point
constexpr __pop_heap_fn | std::ranges::pop_heap
constexpr __prev_permutation_fn | std::ranges::prev_permutation
constexpr __push_heap_fn | std::ranges::push_heap
constexpr __remove_fn | std::ranges::remove
constexpr __remove_copy_fn | std::ranges::remove_copy
constexpr __remove_copy_if_fn | std::ranges::remove_copy_if
constexpr __remove_if_fn | std::ranges::remove_if
constexpr __replace_fn | std::ranges::replace
constexpr __replace_copy_fn | std::ranges::replace_copy
constexpr __replace_copy_if_fn | std::ranges::replace_copy_if
constexpr __replace_if_fn | std::ranges::replace_if
constexpr __reverse_fn | std::ranges::reverse
constexpr __reverse_copy_fn | std::ranges::reverse_copy
constexpr __rotate_fn | std::ranges::rotate
constexpr __rotate_copy_fn | std::ranges::rotate_copy
constexpr __sample_fn | std::ranges::sample
constexpr __search_n_fn | std::ranges::search_n
constexpr __set_difference_fn | std::ranges::set_difference
constexpr __set_intersection_fn | std::ranges::set_intersection
constexpr __set_symmetric_difference_fn | std::ranges::set_symmetric_difference
constexpr __set_union_fn | std::ranges::set_union
constexpr __shuffle_fn | std::ranges::shuffle
constexpr __sort_fn | std::ranges::sort
constexpr __sort_heap_fn | std::ranges::sort_heap
constexpr __stable_partition_fn | std::ranges::stable_partition
constexpr __stable_sort_fn | std::ranges::stable_sort
constexpr __swap_ranges_fn | std::ranges::swap_ranges
constexpr __transform_fn | std::ranges::transform
constexpr __unique_fn | std::ranges::unique
constexpr __unique_copy_fn | std::ranges::unique_copy
constexpr __upper_bound_fn | std::ranges::upper_bound

## Detailed Description

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <algorithm>.

Definition in file ranges_algo.h.

## Typedef Documentation

## __by_ref_or_value_fn

template<typename _Fp>

using std::ranges::__detail::__by_ref_or_value_fn

Definition at line 52 of file ranges_algo.h.

## binary_transform_result

template<typename _Iter1, typename _Iter2, typename _Out>

using std::ranges::binary_transform_result

Definition at line 996 of file ranges_algo.h.

## copy_if_result

template<typename _Iter, typename _Out>

using std::ranges::copy_if_result

Definition at line 899 of file ranges_algo.h.

## for_each_n_result

template<typename _Iter, typename _Fp>

using std::ranges::for_each_n_result

Definition at line 241 of file ranges_algo.h.

## for_each_result

template<typename _Iter, typename _Fp>

using std::ranges::for_each_result

Definition at line 212 of file ranges_algo.h.

## merge_result

template<typename _Iter1, typename _Iter2, typename _Out>

using std::ranges::merge_result

Definition at line 3549 of file ranges_algo.h.

## minmax_element_result

template<typename _Iter>

using std::ranges::minmax_element_result

Definition at line 4463 of file ranges_algo.h.

## minmax_result

template<typename _Tp>

using std::ranges::minmax_result

Definition at line 4295 of file ranges_algo.h.

## next_permutation_result

template<typename _Iter>

using std::ranges::next_permutation_result

Definition at line 4668 of file ranges_algo.h.

## partial_sort_copy_result

template<typename _Iter, typename _Out>

using std::ranges::partial_sort_copy_result

Definition at line 2792 of file ranges_algo.h.

## partition_copy_result

template<typename _Iter, typename _Out1, typename _Out2>

using std::ranges::partition_copy_result

Definition at line 3457 of file ranges_algo.h.

## prev_permutation_result

template<typename _Iter>

using std::ranges::prev_permutation_result

Definition at line 4730 of file ranges_algo.h.

## remove_copy_if_result

template<typename _Iter, typename _Out>

using std::ranges::remove_copy_if_result

Definition at line 1355 of file ranges_algo.h.

## remove_copy_result

template<typename _Iter, typename _Out>

using std::ranges::remove_copy_result

Definition at line 1394 of file ranges_algo.h.

## replace_copy_if_result

template<typename _Iter, typename _Out>

using std::ranges::replace_copy_if_result

Definition at line 1195 of file ranges_algo.h.

## replace_copy_result

template<typename _Iter, typename _Out>

using std::ranges::replace_copy_result

Definition at line 1146 of file ranges_algo.h.

## reverse_copy_result

template<typename _Iter, typename _Out>

using std::ranges::reverse_copy_result

Definition at line 1618 of file ranges_algo.h.

## rotate_copy_result

template<typename _Iter, typename _Out>

using std::ranges::rotate_copy_result

Definition at line 1803 of file ranges_algo.h.

## set_difference_result

template<typename _Iter, typename _Out>

using std::ranges::set_difference_result

Definition at line 4068 of file ranges_algo.h.

## set_intersection_result

template<typename _Iter1, typename _Iter2, typename _Out>

using std::ranges::set_intersection_result

Definition at line 4010 of file ranges_algo.h.

## set_symmetric_difference_result

template<typename _Iter1, typename _Iter2, typename _Out>

using std::ranges::set_symmetric_difference_result

Definition at line 4125 of file ranges_algo.h.

## set_union_result

template<typename _Iter1, typename _Iter2, typename _Out>

using std::ranges::set_union_result

Definition at line 3942 of file ranges_algo.h.

## swap_ranges_result

template<typename _Iter1, typename _Iter2>

using std::ranges::swap_ranges_result

Definition at line 938 of file ranges_algo.h.

## unary_transform_result

template<typename _Iter, typename _Out>

using std::ranges::unary_transform_result

Definition at line 969 of file ranges_algo.h.

## unique_copy_result

template<typename _Iter, typename _Out>

using std::ranges::unique_copy_result

Definition at line 1483 of file ranges_algo.h.

## Function Documentation

## __adjust_heap()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__adjust_heap | ( | _Iter | __first,
|  | iter_difference_t< _Iter > | __holeIndex,
|  | iter_difference_t< _Iter > | __len,
|  | iter_value_t< _Iter > | __value,
|  | _Comp | __comp )

constexpr

Definition at line 2102 of file ranges_algo.h.

## __chunk_insertion_sort()

template<typename _Iter, typename _Distance, typename _Compare>

void std::ranges::__detail::__chunk_insertion_sort | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Distance | __chunk_size,
|  | _Compare | __comp )

constexpr

Definition at line 2569 of file ranges_algo.h.

## __final_insertion_sort()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__final_insertion_sort | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Comp | __comp )

constexpr

Definition at line 2401 of file ranges_algo.h.

## __find_if_not_n()

template<typename _Iter, typename _Pred, typename _Distance>

_Iter std::ranges::__detail::__find_if_not_n | ( | _Iter | __first,
|  | _Distance & | __len,
|  | _Pred | __pred )

constexpr

Definition at line 3309 of file ranges_algo.h.

## __heap_select()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__heap_select | ( | _Iter | __first,
|  | _Iter | __middle,
|  | _Iter | __last,
|  | _Comp | __comp )

constexpr

Definition at line 2445 of file ranges_algo.h.

## __inplace_stable_sort()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__inplace_stable_sort | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Comp | __comp )

constexpr

Definition at line 2665 of file ranges_algo.h.

## __insertion_sort()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__insertion_sort | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Comp | __comp )

constexpr

Definition at line 2371 of file ranges_algo.h.

## __introselect()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__introselect | ( | _Iter | __first,
|  | _Iter | __nth,
|  | _Iter | __last,
|  | iter_difference_t< _Iter > | __depth_limit,
|  | _Comp | __comp )

constexpr

Definition at line 2940 of file ranges_algo.h.

## __introsort_loop()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__introsort_loop | ( | _Iter | __first,
|  | _Iter | __last,
|  | unsigned | __depth_limit,
|  | _Comp | __comp )

constexpr

Definition at line 2463 of file ranges_algo.h.

## __make_comp_proj()

template<typename _Comp, typename _Proj>

_Comp_proj< _Comp, _Proj > std::ranges::__detail::__make_comp_proj | ( | _Comp & | __comp,
|  | _Proj & | __proj )

constexpr

Definition at line 77 of file ranges_algo.h.

## __make_pred_proj()

template<typename _Pred, typename _Proj>

_Pred_proj< _Pred, _Proj > std::ranges::__detail::__make_pred_proj | ( | _Pred & | __pred,
|  | _Proj & | __proj )

constexpr

Definition at line 102 of file ranges_algo.h.

## __merge_adaptive()

template<typename _Iter, typename _Pointer, typename _Comp>

void std::ranges::__detail::__merge_adaptive | ( | _Iter | __first,
|  | _Iter | __middle,
|  | _Iter | __last,
|  | iter_difference_t< _Iter > | __len1,
|  | iter_difference_t< _Iter > | __len2,
|  | _Pointer | __buffer,
|  | _Comp | __comp )

Definition at line 3710 of file ranges_algo.h.

## __merge_adaptive_resize()

template<typename _Iter, typename _Distance, typename _Pointer, typename _Comp>

void std::ranges::__detail::__merge_adaptive_resize | ( | _Iter | __first,
|  | _Iter | __middle,
|  | _Iter | __last,
|  | _Distance | __len1,
|  | _Distance | __len2,
|  | _Pointer | __buffer,
|  | _Distance | __buffer_size,
|  | _Comp | __comp )

Definition at line 3731 of file ranges_algo.h.

## __merge_sort_loop()

template<typename _Iter, typename _Out, typename _Distance, typename _Comp>

void std::ranges::__detail::__merge_sort_loop | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Out | __result,
|  | _Distance | __step_size,
|  | _Comp | __comp )

Definition at line 2548 of file ranges_algo.h.

## __merge_sort_with_buffer()

template<typename _Iter, typename _Pointer, typename _Comp>

void std::ranges::__detail::__merge_sort_with_buffer | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Pointer | __buffer,
|  | _Comp | __comp )

Definition at line 2582 of file ranges_algo.h.

## __merge_without_buffer()

template<typename _Iter, typename _Distance, typename _Comp>

void std::ranges::__detail::__merge_without_buffer | ( | _Iter | __first,
|  | _Iter | __middle,
|  | _Iter | __last,
|  | _Distance | __len1,
|  | _Distance | __len2,
|  | _Comp | __comp )

constexpr

Definition at line 3778 of file ranges_algo.h.

## __move_median_to_first()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__move_median_to_first | ( | _Iter | __result,
|  | _Iter | __a,
|  | _Iter | __b,
|  | _Iter | __c,
|  | _Comp | __comp )

constexpr

Definition at line 2333 of file ranges_algo.h.

## __move_merge()

template<typename _Iter, typename _Out, typename _Comp>

_Out std::ranges::__detail::__move_merge | ( | _Iter | __first1,
|  | _Iter | __last1,
|  | _Iter | __first2,
|  | _Iter | __last2,
|  | _Out | __result,
|  | _Comp | __comp )

Definition at line 2524 of file ranges_algo.h.

## __move_merge_adaptive()

template<typename _Iter1, typename _Iter2, typename _Out, typename _Comp>

void std::ranges::__detail::__move_merge_adaptive | ( | _Iter1 | __first1,
|  | _Iter1 | __last1,
|  | _Iter2 | __first2,
|  | _Iter2 | __last2,
|  | _Out | __result,
|  | _Comp | __comp )

Definition at line 3613 of file ranges_algo.h.

## __move_merge_adaptive_backward()

template<typename _Iter1, typename _Iter2, typename _Iter3, typename _Comp>

void std::ranges::__detail::__move_merge_adaptive_backward | ( | _Iter1 | __first1,
|  | _Iter1 | __last1,
|  | _Iter2 | __first2,
|  | _Iter2 | __last2,
|  | _Iter3 | __result,
|  | _Comp | __comp )

Definition at line 3637 of file ranges_algo.h.

## __partial_sort()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__partial_sort | ( | _Iter | __first,
|  | _Iter | __middle,
|  | _Iter | __last,
|  | _Comp | __comp )

constexpr

Definition at line 2455 of file ranges_algo.h.

## __pop_heap()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__pop_heap | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Iter | __result,
|  | _Comp | __comp )

constexpr

Definition at line 2131 of file ranges_algo.h.

## __push_heap()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__push_heap | ( | _Iter | __first,
|  | iter_difference_t< _Iter > | __holeIndex,
|  | iter_difference_t< _Iter > | __topIndex,
|  | iter_value_t< _Iter > | __value,
|  | _Comp | __comp )

constexpr

Definition at line 2045 of file ranges_algo.h.

## __rotate_adaptive()

template<typename _Iter1, typename _Iter2>

_Iter1 std::ranges::__detail::__rotate_adaptive | ( | _Iter1 | __first,
|  | _Iter1 | __middle,
|  | _Iter1 | __last,
|  | iter_difference_t< _Iter1 > | __len1,
|  | iter_difference_t< _Iter1 > | __len2,
|  | _Iter2 | __buffer,
|  | iter_difference_t< _Iter1 > | __buffer_size )

Definition at line 3675 of file ranges_algo.h.

## __stable_partition_adaptive()

template<typename _Iter, typename _Sent, typename _Pointer, typename _Pred, typename _Distance>

subrange< _Iter > std::ranges::__detail::__stable_partition_adaptive | ( | _Iter | __first,
|  | _Sent | __last,
|  | _Pred | __pred,
|  | _Distance | __len,
|  | _Pointer | __buffer,
|  | _Distance | __buffer_size )

constexpr

Definition at line 3320 of file ranges_algo.h.

## __stable_sort_adaptive()

template<typename _Iter, typename _Pointer, typename _Comp>

void std::ranges::__detail::__stable_sort_adaptive | ( | _Iter | __first,
|  | _Iter | __middle,
|  | _Iter | __last,
|  | _Pointer | __buffer,
|  | _Comp | __comp )

Definition at line 2627 of file ranges_algo.h.

## __stable_sort_adaptive_resize()

template<typename _Iter, typename _Pointer, typename _Distance, typename _Comp>

void std::ranges::__detail::__stable_sort_adaptive_resize | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Pointer | __buffer,
|  | _Distance | __buffer_size,
|  | _Comp | __comp )

Definition at line 2640 of file ranges_algo.h.

## __unguarded_insertion_sort()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__unguarded_insertion_sort | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Comp | __comp )

constexpr

Definition at line 2391 of file ranges_algo.h.

## __unguarded_linear_insert()

template<typename _Iter, typename _Comp>

void std::ranges::__detail::__unguarded_linear_insert | ( | _Iter | __last,
|  | _Comp | __comp )

constexpr

Definition at line 2355 of file ranges_algo.h.

## __unguarded_partition()

template<typename _Iter, typename _Comp>

_Iter std::ranges::__detail::__unguarded_partition | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Iter | __pivot,
|  | _Comp | __comp )

constexpr

Definition at line 2416 of file ranges_algo.h.

## __unguarded_partition_pivot()

template<typename _Iter, typename _Comp>

_Iter std::ranges::__detail::__unguarded_partition_pivot | ( | _Iter | __first,
|  | _Iter | __last,
|  | _Comp | __comp )

constexpr

Definition at line 2434 of file ranges_algo.h.

## Variable Documentation

## __sort_threshold

int std::ranges::__detail::__sort_threshold

inline constexpr

Definition at line 2397 of file ranges_algo.h.

## all_of

__all_of_fn std::ranges::all_of

inline constexpr

Definition at line 133 of file ranges_algo.h.

## any_of

__any_of_fn std::ranges::any_of

inline constexpr

Definition at line 161 of file ranges_algo.h.

## binary_search

__binary_search_fn std::ranges::binary_search

inline constexpr

Definition at line 3197 of file ranges_algo.h.

## clamp

__clamp_fn std::ranges::clamp

inline constexpr

Definition at line 4273 of file ranges_algo.h.

## copy_if

__copy_if_fn std::ranges::copy_if

inline constexpr

Definition at line 935 of file ranges_algo.h.

## count

__count_fn std::ranges::count

inline constexpr

Definition at line 347 of file ranges_algo.h.

## count_if

__count_if_fn std::ranges::count_if

inline constexpr

Definition at line 377 of file ranges_algo.h.

## equal_range

__equal_range_fn std::ranges::equal_range

inline constexpr

Definition at line 3161 of file ranges_algo.h.

## find_end

__find_end_fn std::ranges::find_end

inline constexpr

Definition at line 797 of file ranges_algo.h.

## find_first_of

__find_first_of_fn std::ranges::find_first_of

inline constexpr

Definition at line 312 of file ranges_algo.h.

## for_each

__for_each_fn std::ranges::for_each

inline constexpr

Definition at line 238 of file ranges_algo.h.

## for_each_n

__for_each_n_fn std::ranges::for_each_n

inline constexpr

Definition at line 271 of file ranges_algo.h.

## generate

__generate_fn std::ranges::generate

inline constexpr

Definition at line 1277 of file ranges_algo.h.

## generate_n

__generate_n_fn std::ranges::generate_n

inline constexpr

Definition at line 1252 of file ranges_algo.h.

## includes

__includes_fn std::ranges::includes

inline constexpr

Definition at line 3939 of file ranges_algo.h.

## inplace_merge

__inplace_merge_fn std::ranges::inplace_merge

inline constexpr

Definition at line 3889 of file ranges_algo.h.

## is_heap

__is_heap_fn std::ranges::is_heap

inline constexpr

Definition at line 2327 of file ranges_algo.h.

## is_heap_until

__is_heap_until_fn std::ranges::is_heap_until

inline constexpr

Definition at line 2297 of file ranges_algo.h.

## is_partitioned

__is_partitioned_fn std::ranges::is_partitioned

inline constexpr

Definition at line 3228 of file ranges_algo.h.

## is_permutation

__is_permutation_fn std::ranges::is_permutation

inline constexpr

Definition at line 896 of file ranges_algo.h.

## is_sorted

__is_sorted_fn std::ranges::is_sorted

inline constexpr

Definition at line 2934 of file ranges_algo.h.

## is_sorted_until

__is_sorted_until_fn std::ranges::is_sorted_until

inline constexpr

Definition at line 2899 of file ranges_algo.h.

## lexicographical_compare

__lexicographical_compare_fn std::ranges::lexicographical_compare

inline constexpr

Definition at line 4646 of file ranges_algo.h.

## lower_bound

__lower_bound_fn std::ranges::lower_bound

inline constexpr

Definition at line 3050 of file ranges_algo.h.

## make_heap

__make_heap_fn std::ranges::make_heap

inline constexpr

Definition at line 2222 of file ranges_algo.h.

## max

__max_fn std::ranges::max

inline constexpr

Definition at line 4245 of file ranges_algo.h.

## max_element

__max_element_fn std::ranges::max_element

inline constexpr

Definition at line 4460 of file ranges_algo.h.

## merge

__merge_fn std::ranges::merge

inline constexpr

Definition at line 3607 of file ranges_algo.h.

## min_element

__min_element_fn std::ranges::min_element

inline constexpr

Definition at line 4423 of file ranges_algo.h.

## minmax

__minmax_fn std::ranges::minmax

inline constexpr

Definition at line 4386 of file ranges_algo.h.

## minmax_element

__minmax_element_fn std::ranges::minmax_element

inline constexpr

Definition at line 4534 of file ranges_algo.h.

## next_permutation

__next_permutation_fn std::ranges::next_permutation

inline constexpr

Definition at line 4727 of file ranges_algo.h.

## none_of

__none_of_fn std::ranges::none_of

inline constexpr

Definition at line 189 of file ranges_algo.h.

## nth_element

__nth_element_fn std::ranges::nth_element

inline constexpr

Definition at line 3002 of file ranges_algo.h.

## partial_sort

__partial_sort_fn std::ranges::partial_sort

inline constexpr

Definition at line 2789 of file ranges_algo.h.

## partial_sort_copy

__partial_sort_copy_fn std::ranges::partial_sort_copy

inline constexpr

Definition at line 2864 of file ranges_algo.h.

## partition

__partition_fn std::ranges::partition

inline constexpr

Definition at line 3299 of file ranges_algo.h.

## partition_copy

__partition_copy_fn std::ranges::partition_copy

inline constexpr

Definition at line 3505 of file ranges_algo.h.

## partition_point

__partition_point_fn std::ranges::partition_point

inline constexpr

Definition at line 3546 of file ranges_algo.h.

## pop_heap

__pop_heap_fn std::ranges::pop_heap

inline constexpr

Definition at line 2175 of file ranges_algo.h.

## prev_permutation

__prev_permutation_fn std::ranges::prev_permutation

inline constexpr

Definition at line 4789 of file ranges_algo.h.

## push_heap

__push_heap_fn std::ranges::push_heap

inline constexpr

Definition at line 2096 of file ranges_algo.h.

## remove

__remove_fn std::ranges::remove

inline constexpr

Definition at line 1352 of file ranges_algo.h.

## remove_copy

__remove_copy_fn std::ranges::remove_copy

inline constexpr

Definition at line 1435 of file ranges_algo.h.

## remove_copy_if

__remove_copy_if_fn std::ranges::remove_copy_if

inline constexpr

Definition at line 1391 of file ranges_algo.h.

## remove_if

__remove_if_fn std::ranges::remove_if

inline constexpr

Definition at line 1316 of file ranges_algo.h.

## replace

__replace_fn std::ranges::replace

inline constexpr

Definition at line 1109 of file ranges_algo.h.

## replace_copy

__replace_copy_fn std::ranges::replace_copy

inline constexpr

Definition at line 1192 of file ranges_algo.h.

## replace_copy_if

__replace_copy_if_fn std::ranges::replace_copy_if

inline constexpr

Definition at line 1236 of file ranges_algo.h.

## replace_if

__replace_if_fn std::ranges::replace_if

inline constexpr

Definition at line 1143 of file ranges_algo.h.

## reverse

__reverse_fn std::ranges::reverse

inline constexpr

Definition at line 1615 of file ranges_algo.h.

## reverse_copy

__reverse_copy_fn std::ranges::reverse_copy

inline constexpr

Definition at line 1649 of file ranges_algo.h.

## rotate

__rotate_fn std::ranges::rotate

inline constexpr

Definition at line 1800 of file ranges_algo.h.

## rotate_copy

__rotate_copy_fn std::ranges::rotate_copy

inline constexpr

Definition at line 1833 of file ranges_algo.h.

## sample

__sample_fn std::ranges::sample

inline constexpr

Definition at line 1948 of file ranges_algo.h.

## search_n

__search_n_fn std::ranges::search_n

inline constexpr

Definition at line 472 of file ranges_algo.h.

## set_difference

__set_difference_fn std::ranges::set_difference

inline constexpr

Definition at line 4122 of file ranges_algo.h.

## set_intersection

__set_intersection_fn std::ranges::set_intersection

inline constexpr

Definition at line 4065 of file ranges_algo.h.

## set_symmetric_difference

__set_symmetric_difference_fn std::ranges::set_symmetric_difference

inline constexpr

Definition at line 4189 of file ranges_algo.h.

## set_union

__set_union_fn std::ranges::set_union

inline constexpr

Definition at line 4007 of file ranges_algo.h.

## shuffle

__shuffle_fn std::ranges::shuffle

inline constexpr

Definition at line 2039 of file ranges_algo.h.

## sort

__sort_fn std::ranges::sort

inline constexpr

Definition at line 2517 of file ranges_algo.h.

## sort_heap

__sort_heap_fn std::ranges::sort_heap

inline constexpr

Definition at line 2260 of file ranges_algo.h.

## stable_partition

__stable_partition_fn std::ranges::stable_partition

inline constexpr

Definition at line 3429 of file ranges_algo.h.

## stable_sort

__stable_sort_fn std::ranges::stable_sort

inline constexpr

Definition at line 2746 of file ranges_algo.h.

## swap_ranges

__swap_ranges_fn std::ranges::swap_ranges

inline constexpr

Definition at line 966 of file ranges_algo.h.

## transform

__transform_fn std::ranges::transform

inline constexpr

Definition at line 1069 of file ranges_algo.h.

## unique

__unique_fn std::ranges::unique

inline constexpr

Definition at line 1473 of file ranges_algo.h.

## unique_copy

__unique_copy_fn std::ranges::unique_copy

inline constexpr

Definition at line 1566 of file ranges_algo.h.

## upper_bound

__upper_bound_fn std::ranges::upper_bound

inline constexpr

Definition at line 3098 of file ranges_algo.h.