libstdc++: ranges_algo.h File Reference

libstdc++

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 _Tp>
using | std::ranges::fold_left_first_with_iter_result
template<typename _Iter, typename _Tp>
using | std::ranges::fold_left_with_iter_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 __contains_fn | std::ranges::contains
constexpr __contains_subrange_fn | std::ranges::contains_subrange
constexpr __copy_if_fn | std::ranges::copy_if
constexpr __count_fn | std::ranges::count
constexpr __count_if_fn | std::ranges::count_if
constexpr __ends_with_fn | std::ranges::ends_with
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 __find_last_fn | std::ranges::find_last
constexpr __find_last_if_fn | std::ranges::find_last_if
constexpr __find_last_if_not_fn | std::ranges::find_last_if_not
constexpr __fold_left_fn | std::ranges::fold_left
constexpr __fold_left_first_fn | std::ranges::fold_left_first
constexpr __fold_left_first_with_iter_fn | std::ranges::fold_left_first_with_iter
constexpr __fold_left_with_iter_fn | std::ranges::fold_left_with_iter
constexpr __fold_right_fn | std::ranges::fold_right
constexpr __fold_right_last_fn | std::ranges::fold_right_last
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 __shift_left_fn | std::ranges::shift_left
constexpr __shift_right_fn | std::ranges::shift_right
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 __starts_with_fn | std::ranges::starts_with
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.

## ◆ fold_left_first_with_iter_result

template<typename _Iter, typename _Tp>

using std::ranges::fold_left_first_with_iter_result

Definition at line 5112 of file ranges_algo.h.

## ◆ fold_left_with_iter_result

template<typename _Iter, typename _Tp>

using std::ranges::fold_left_with_iter_result

Definition at line 5043 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
| inlineconstexpr

Definition at line 2397 of file ranges_algo.h.

## ◆ all_of

__all_of_fn std::ranges::all_of
| inlineconstexpr

Definition at line 133 of file ranges_algo.h.

## ◆ any_of

__any_of_fn std::ranges::any_of
| inlineconstexpr

Definition at line 161 of file ranges_algo.h.

## ◆ binary_search

__binary_search_fn std::ranges::binary_search
| inlineconstexpr

Definition at line 3197 of file ranges_algo.h.

## ◆ clamp

__clamp_fn std::ranges::clamp
| inlineconstexpr

Definition at line 4273 of file ranges_algo.h.

## ◆ contains

__contains_fn std::ranges::contains
| inlineconstexpr

Definition at line 4814 of file ranges_algo.h.

## ◆ contains_subrange

__contains_subrange_fn std::ranges::contains_subrange
| inlineconstexpr

Definition at line 4847 of file ranges_algo.h.

## ◆ copy_if

__copy_if_fn std::ranges::copy_if
| inlineconstexpr

Definition at line 935 of file ranges_algo.h.

## ◆ count

__count_fn std::ranges::count
| inlineconstexpr

Definition at line 347 of file ranges_algo.h.

## ◆ count_if

__count_if_fn std::ranges::count_if
| inlineconstexpr

Definition at line 377 of file ranges_algo.h.

## ◆ ends_with

__ends_with_fn std::ranges::ends_with
| inlineconstexpr

Definition at line 719 of file ranges_algo.h.

## ◆ equal_range

__equal_range_fn std::ranges::equal_range
| inlineconstexpr

Definition at line 3161 of file ranges_algo.h.

## ◆ find_end

__find_end_fn std::ranges::find_end
| inlineconstexpr

Definition at line 797 of file ranges_algo.h.

## ◆ find_first_of

__find_first_of_fn std::ranges::find_first_of
| inlineconstexpr

Definition at line 312 of file ranges_algo.h.

## ◆ find_last

__find_last_fn std::ranges::find_last
| inlineconstexpr

Definition at line 4897 of file ranges_algo.h.

## ◆ find_last_if

__find_last_if_fn std::ranges::find_last_if
| inlineconstexpr

Definition at line 4939 of file ranges_algo.h.

## ◆ find_last_if_not

__find_last_if_not_fn std::ranges::find_last_if_not
| inlineconstexpr

Definition at line 4981 of file ranges_algo.h.

## ◆ fold_left

__fold_left_fn std::ranges::fold_left
| inlineconstexpr

Definition at line 5109 of file ranges_algo.h.

## ◆ fold_left_first

__fold_left_first_fn std::ranges::fold_left_first
| inlineconstexpr

Definition at line 5176 of file ranges_algo.h.

## ◆ fold_left_first_with_iter

__fold_left_first_with_iter_fn std::ranges::fold_left_first_with_iter
| inlineconstexpr

Definition at line 5154 of file ranges_algo.h.

## ◆ fold_left_with_iter

__fold_left_with_iter_fn std::ranges::fold_left_with_iter
| inlineconstexpr

Definition at line 5087 of file ranges_algo.h.

## ◆ fold_right

__fold_right_fn std::ranges::fold_right
| inlineconstexpr

Definition at line 5206 of file ranges_algo.h.

## ◆ fold_right_last

__fold_right_last_fn std::ranges::fold_right_last
| inlineconstexpr

Definition at line 5237 of file ranges_algo.h.

## ◆ for_each

__for_each_fn std::ranges::for_each
| inlineconstexpr

Definition at line 238 of file ranges_algo.h.

## ◆ for_each_n

__for_each_n_fn std::ranges::for_each_n
| inlineconstexpr

Definition at line 271 of file ranges_algo.h.

## ◆ generate

__generate_fn std::ranges::generate
| inlineconstexpr

Definition at line 1277 of file ranges_algo.h.

## ◆ generate_n

__generate_n_fn std::ranges::generate_n
| inlineconstexpr

Definition at line 1252 of file ranges_algo.h.

## ◆ includes

__includes_fn std::ranges::includes
| inlineconstexpr

Definition at line 3939 of file ranges_algo.h.

## ◆ inplace_merge

__inplace_merge_fn std::ranges::inplace_merge
| inlineconstexpr

Definition at line 3889 of file ranges_algo.h.

## ◆ is_heap

__is_heap_fn std::ranges::is_heap
| inlineconstexpr

Definition at line 2327 of file ranges_algo.h.

## ◆ is_heap_until

__is_heap_until_fn std::ranges::is_heap_until
| inlineconstexpr

Definition at line 2297 of file ranges_algo.h.

## ◆ is_partitioned

__is_partitioned_fn std::ranges::is_partitioned
| inlineconstexpr

Definition at line 3228 of file ranges_algo.h.

## ◆ is_permutation

__is_permutation_fn std::ranges::is_permutation
| inlineconstexpr

Definition at line 896 of file ranges_algo.h.

## ◆ is_sorted

__is_sorted_fn std::ranges::is_sorted
| inlineconstexpr

Definition at line 2934 of file ranges_algo.h.

## ◆ is_sorted_until

__is_sorted_until_fn std::ranges::is_sorted_until
| inlineconstexpr

Definition at line 2899 of file ranges_algo.h.

## ◆ lexicographical_compare

__lexicographical_compare_fn std::ranges::lexicographical_compare
| inlineconstexpr

Definition at line 4646 of file ranges_algo.h.

## ◆ lower_bound

__lower_bound_fn std::ranges::lower_bound
| inlineconstexpr

Definition at line 3050 of file ranges_algo.h.

## ◆ make_heap

__make_heap_fn std::ranges::make_heap
| inlineconstexpr

Definition at line 2222 of file ranges_algo.h.

## ◆ max

__max_fn std::ranges::max
| inlineconstexpr

Definition at line 4245 of file ranges_algo.h.

## ◆ max_element

__max_element_fn std::ranges::max_element
| inlineconstexpr

Definition at line 4460 of file ranges_algo.h.

## ◆ merge

__merge_fn std::ranges::merge
| inlineconstexpr

Definition at line 3607 of file ranges_algo.h.

## ◆ min_element

__min_element_fn std::ranges::min_element
| inlineconstexpr

Definition at line 4423 of file ranges_algo.h.

## ◆ minmax

__minmax_fn std::ranges::minmax
| inlineconstexpr

Definition at line 4386 of file ranges_algo.h.

## ◆ minmax_element

__minmax_element_fn std::ranges::minmax_element
| inlineconstexpr

Definition at line 4534 of file ranges_algo.h.

## ◆ next_permutation

__next_permutation_fn std::ranges::next_permutation
| inlineconstexpr

Definition at line 4727 of file ranges_algo.h.

## ◆ none_of

__none_of_fn std::ranges::none_of
| inlineconstexpr

Definition at line 189 of file ranges_algo.h.

## ◆ nth_element

__nth_element_fn std::ranges::nth_element
| inlineconstexpr

Definition at line 3002 of file ranges_algo.h.

## ◆ partial_sort

__partial_sort_fn std::ranges::partial_sort
| inlineconstexpr

Definition at line 2789 of file ranges_algo.h.

## ◆ partial_sort_copy

__partial_sort_copy_fn std::ranges::partial_sort_copy
| inlineconstexpr

Definition at line 2864 of file ranges_algo.h.

## ◆ partition

__partition_fn std::ranges::partition
| inlineconstexpr

Definition at line 3299 of file ranges_algo.h.

## ◆ partition_copy

__partition_copy_fn std::ranges::partition_copy
| inlineconstexpr

Definition at line 3505 of file ranges_algo.h.

## ◆ partition_point

__partition_point_fn std::ranges::partition_point
| inlineconstexpr

Definition at line 3546 of file ranges_algo.h.

## ◆ pop_heap

__pop_heap_fn std::ranges::pop_heap
| inlineconstexpr

Definition at line 2175 of file ranges_algo.h.

## ◆ prev_permutation

__prev_permutation_fn std::ranges::prev_permutation
| inlineconstexpr

Definition at line 4789 of file ranges_algo.h.

## ◆ push_heap

__push_heap_fn std::ranges::push_heap
| inlineconstexpr

Definition at line 2096 of file ranges_algo.h.

## ◆ remove

__remove_fn std::ranges::remove
| inlineconstexpr

Definition at line 1352 of file ranges_algo.h.

## ◆ remove_copy

__remove_copy_fn std::ranges::remove_copy
| inlineconstexpr

Definition at line 1435 of file ranges_algo.h.

## ◆ remove_copy_if

__remove_copy_if_fn std::ranges::remove_copy_if
| inlineconstexpr

Definition at line 1391 of file ranges_algo.h.

## ◆ remove_if

__remove_if_fn std::ranges::remove_if
| inlineconstexpr

Definition at line 1316 of file ranges_algo.h.

## ◆ replace

__replace_fn std::ranges::replace
| inlineconstexpr

Definition at line 1109 of file ranges_algo.h.

## ◆ replace_copy

__replace_copy_fn std::ranges::replace_copy
| inlineconstexpr

Definition at line 1192 of file ranges_algo.h.

## ◆ replace_copy_if

__replace_copy_if_fn std::ranges::replace_copy_if
| inlineconstexpr

Definition at line 1236 of file ranges_algo.h.

## ◆ replace_if

__replace_if_fn std::ranges::replace_if
| inlineconstexpr

Definition at line 1143 of file ranges_algo.h.

## ◆ reverse

__reverse_fn std::ranges::reverse
| inlineconstexpr

Definition at line 1615 of file ranges_algo.h.

## ◆ reverse_copy

__reverse_copy_fn std::ranges::reverse_copy
| inlineconstexpr

Definition at line 1649 of file ranges_algo.h.

## ◆ rotate

__rotate_fn std::ranges::rotate
| inlineconstexpr

Definition at line 1800 of file ranges_algo.h.

## ◆ rotate_copy

__rotate_copy_fn std::ranges::rotate_copy
| inlineconstexpr

Definition at line 1833 of file ranges_algo.h.

## ◆ sample

__sample_fn std::ranges::sample
| inlineconstexpr

Definition at line 1948 of file ranges_algo.h.

## ◆ search_n

__search_n_fn std::ranges::search_n
| inlineconstexpr

Definition at line 472 of file ranges_algo.h.

## ◆ set_difference

__set_difference_fn std::ranges::set_difference
| inlineconstexpr

Definition at line 4122 of file ranges_algo.h.

## ◆ set_intersection

__set_intersection_fn std::ranges::set_intersection
| inlineconstexpr

Definition at line 4065 of file ranges_algo.h.

## ◆ set_symmetric_difference

__set_symmetric_difference_fn std::ranges::set_symmetric_difference
| inlineconstexpr

Definition at line 4189 of file ranges_algo.h.

## ◆ set_union

__set_union_fn std::ranges::set_union
| inlineconstexpr

Definition at line 4007 of file ranges_algo.h.

## ◆ shift_left

__shift_left_fn std::ranges::shift_left
| inlineconstexpr

Definition at line 5361 of file ranges_algo.h.

## ◆ shift_right

__shift_right_fn std::ranges::shift_right
| inlineconstexpr

Definition at line 5444 of file ranges_algo.h.

## ◆ shuffle

__shuffle_fn std::ranges::shuffle
| inlineconstexpr

Definition at line 2039 of file ranges_algo.h.

## ◆ sort

__sort_fn std::ranges::sort
| inlineconstexpr

Definition at line 2517 of file ranges_algo.h.

## ◆ sort_heap

__sort_heap_fn std::ranges::sort_heap
| inlineconstexpr

Definition at line 2260 of file ranges_algo.h.

## ◆ stable_partition

__stable_partition_fn std::ranges::stable_partition
| inlineconstexpr

Definition at line 3429 of file ranges_algo.h.

## ◆ stable_sort

__stable_sort_fn std::ranges::stable_sort
| inlineconstexpr

Definition at line 2746 of file ranges_algo.h.

## ◆ starts_with

__starts_with_fn std::ranges::starts_with
| inlineconstexpr

Definition at line 555 of file ranges_algo.h.

## ◆ swap_ranges

__swap_ranges_fn std::ranges::swap_ranges
| inlineconstexpr

Definition at line 966 of file ranges_algo.h.

## ◆ transform

__transform_fn std::ranges::transform
| inlineconstexpr

Definition at line 1069 of file ranges_algo.h.

## ◆ unique

__unique_fn std::ranges::unique
| inlineconstexpr

Definition at line 1473 of file ranges_algo.h.

## ◆ unique_copy

__unique_copy_fn std::ranges::unique_copy
| inlineconstexpr

Definition at line 1566 of file ranges_algo.h.

## ◆ upper_bound

__upper_bound_fn std::ranges::upper_bound
| inlineconstexpr

Definition at line 3098 of file ranges_algo.h.