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 = __conditional_t< is_scalar_v< _Fp >||is_empty_v< _Fp >, _Fp, _Fp & >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::binary_transform_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::copy_if_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Tp >
using std::ranges::fold_left_first_with_iter_result = in_value_result< _Iter, _Tp >
 
template<typename _Iter , typename _Tp >
using std::ranges::fold_left_with_iter_result = in_value_result< _Iter, _Tp >
 
template<typename _Iter , typename _Fp >
using std::ranges::for_each_n_result = in_fun_result< _Iter, _Fp >
 
template<typename _Iter , typename _Fp >
using std::ranges::for_each_result = in_fun_result< _Iter, _Fp >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::merge_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter >
using std::ranges::minmax_element_result = min_max_result< _Iter >
 
template<typename _Tp >
using std::ranges::minmax_result = min_max_result< _Tp >
 
template<typename _Iter >
using std::ranges::next_permutation_result = in_found_result< _Iter >
 
template<typename _Iter , typename _Out >
using std::ranges::partial_sort_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out1 , typename _Out2 >
using std::ranges::partition_copy_result = in_out_out_result< _Iter, _Out1, _Out2 >
 
template<typename _Iter >
using std::ranges::prev_permutation_result = in_found_result< _Iter >
 
template<typename _Iter , typename _Out >
using std::ranges::remove_copy_if_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::remove_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::replace_copy_if_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::replace_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::reverse_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::rotate_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::set_difference_result = in_out_result< _Iter, _Out >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::set_intersection_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::set_symmetric_difference_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::set_union_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter1 , typename _Iter2 >
using std::ranges::swap_ranges_result = in_in_result< _Iter1, _Iter2 >
 
template<typename _Iter , typename _Out >
using std::ranges::unary_transform_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::unique_copy_result = in_out_result< _Iter, _Out >
 

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 = typedef __conditional_t<is_scalar_v<_Fp> || is_empty_v<_Fp>, _Fp, _Fp&>

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 = typedef in_in_out_result<_Iter1, _Iter2, _Out>

Definition at line 996 of file ranges_algo.h.

◆ copy_if_result

template<typename _Iter , typename _Out >
using std::ranges::copy_if_result = typedef in_out_result<_Iter, _Out>

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 = typedef in_value_result<_Iter, _Tp>

Definition at line 5110 of file ranges_algo.h.

◆ fold_left_with_iter_result

template<typename _Iter , typename _Tp >
using std::ranges::fold_left_with_iter_result = typedef in_value_result<_Iter, _Tp>

Definition at line 5041 of file ranges_algo.h.

◆ for_each_n_result

template<typename _Iter , typename _Fp >
using std::ranges::for_each_n_result = typedef in_fun_result<_Iter, _Fp>

Definition at line 241 of file ranges_algo.h.

◆ for_each_result

template<typename _Iter , typename _Fp >
using std::ranges::for_each_result = typedef in_fun_result<_Iter, _Fp>

Definition at line 212 of file ranges_algo.h.

◆ merge_result

template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::merge_result = typedef in_in_out_result<_Iter1, _Iter2, _Out>

Definition at line 3546 of file ranges_algo.h.

◆ minmax_element_result

template<typename _Iter >
using std::ranges::minmax_element_result = typedef min_max_result<_Iter>

Definition at line 4461 of file ranges_algo.h.

◆ minmax_result

template<typename _Tp >
using std::ranges::minmax_result = typedef min_max_result<_Tp>

Definition at line 4293 of file ranges_algo.h.

◆ next_permutation_result

template<typename _Iter >
using std::ranges::next_permutation_result = typedef in_found_result<_Iter>

Definition at line 4666 of file ranges_algo.h.

◆ partial_sort_copy_result

template<typename _Iter , typename _Out >
using std::ranges::partial_sort_copy_result = typedef in_out_result<_Iter, _Out>

Definition at line 2789 of file ranges_algo.h.

◆ partition_copy_result

template<typename _Iter , typename _Out1 , typename _Out2 >
using std::ranges::partition_copy_result = typedef in_out_out_result<_Iter, _Out1, _Out2>

Definition at line 3454 of file ranges_algo.h.

◆ prev_permutation_result

template<typename _Iter >
using std::ranges::prev_permutation_result = typedef in_found_result<_Iter>

Definition at line 4728 of file ranges_algo.h.

◆ remove_copy_if_result

template<typename _Iter , typename _Out >
using std::ranges::remove_copy_if_result = typedef in_out_result<_Iter, _Out>

Definition at line 1355 of file ranges_algo.h.

◆ remove_copy_result

template<typename _Iter , typename _Out >
using std::ranges::remove_copy_result = typedef in_out_result<_Iter, _Out>

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 = typedef in_out_result<_Iter, _Out>

Definition at line 1195 of file ranges_algo.h.

◆ replace_copy_result

template<typename _Iter , typename _Out >
using std::ranges::replace_copy_result = typedef in_out_result<_Iter, _Out>

Definition at line 1146 of file ranges_algo.h.

◆ reverse_copy_result

template<typename _Iter , typename _Out >
using std::ranges::reverse_copy_result = typedef in_out_result<_Iter, _Out>

Definition at line 1618 of file ranges_algo.h.

◆ rotate_copy_result

template<typename _Iter , typename _Out >
using std::ranges::rotate_copy_result = typedef in_out_result<_Iter, _Out>

Definition at line 1803 of file ranges_algo.h.

◆ set_difference_result

template<typename _Iter , typename _Out >
using std::ranges::set_difference_result = typedef in_out_result<_Iter, _Out>

Definition at line 4065 of file ranges_algo.h.

◆ set_intersection_result

template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::set_intersection_result = typedef in_in_out_result<_Iter1, _Iter2, _Out>

Definition at line 4007 of file ranges_algo.h.

◆ set_symmetric_difference_result

template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::set_symmetric_difference_result = typedef in_in_out_result<_Iter1, _Iter2, _Out>

Definition at line 4122 of file ranges_algo.h.

◆ set_union_result

template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::set_union_result = typedef in_in_out_result<_Iter1, _Iter2, _Out>

Definition at line 3939 of file ranges_algo.h.

◆ swap_ranges_result

template<typename _Iter1 , typename _Iter2 >
using std::ranges::swap_ranges_result = typedef in_in_result<_Iter1, _Iter2>

Definition at line 938 of file ranges_algo.h.

◆ unary_transform_result

template<typename _Iter , typename _Out >
using std::ranges::unary_transform_result = typedef in_out_result<_Iter, _Out>

Definition at line 969 of file ranges_algo.h.

◆ unique_copy_result

template<typename _Iter , typename _Out >
using std::ranges::unique_copy_result = typedef in_out_result<_Iter, _Out>

Definition at line 1483 of file ranges_algo.h.

Function Documentation

◆ __adjust_heap()

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

Definition at line 2099 of file ranges_algo.h.

◆ __chunk_insertion_sort()

template<typename _Iter , typename _Distance , typename _Compare >
constexpr void std::ranges::__detail::__chunk_insertion_sort ( _Iter  __first,
_Iter  __last,
_Distance  __chunk_size,
_Compare  __comp 
)
constexpr

Definition at line 2566 of file ranges_algo.h.

◆ __final_insertion_sort()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__final_insertion_sort ( _Iter  __first,
_Iter  __last,
_Comp  __comp 
)
constexpr

Definition at line 2398 of file ranges_algo.h.

◆ __find_if_not_n()

template<typename _Iter , typename _Pred , typename _Distance >
constexpr _Iter std::ranges::__detail::__find_if_not_n ( _Iter  __first,
_Distance &  __len,
_Pred  __pred 
)
constexpr

Definition at line 3306 of file ranges_algo.h.

◆ __heap_select()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__heap_select ( _Iter  __first,
_Iter  __middle,
_Iter  __last,
_Comp  __comp 
)
constexpr

Definition at line 2442 of file ranges_algo.h.

◆ __inplace_stable_sort()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__inplace_stable_sort ( _Iter  __first,
_Iter  __last,
_Comp  __comp 
)
constexpr

Definition at line 2662 of file ranges_algo.h.

◆ __insertion_sort()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__insertion_sort ( _Iter  __first,
_Iter  __last,
_Comp  __comp 
)
constexpr

Definition at line 2368 of file ranges_algo.h.

◆ __introselect()

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

Definition at line 2937 of file ranges_algo.h.

◆ __introsort_loop()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__introsort_loop ( _Iter  __first,
_Iter  __last,
unsigned  __depth_limit,
_Comp  __comp 
)
constexpr

Definition at line 2460 of file ranges_algo.h.

◆ __make_comp_proj()

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

Definition at line 78 of file ranges_algo.h.

◆ __make_pred_proj()

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

Definition at line 103 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 3707 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 3728 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 2545 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 2579 of file ranges_algo.h.

◆ __merge_without_buffer()

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

Definition at line 3775 of file ranges_algo.h.

◆ __move_median_to_first()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__move_median_to_first ( _Iter  __result,
_Iter  __a,
_Iter  __b,
_Iter  __c,
_Comp  __comp 
)
constexpr

Definition at line 2330 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 2521 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 3610 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 3634 of file ranges_algo.h.

◆ __partial_sort()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__partial_sort ( _Iter  __first,
_Iter  __middle,
_Iter  __last,
_Comp  __comp 
)
constexpr

Definition at line 2452 of file ranges_algo.h.

◆ __pop_heap()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__pop_heap ( _Iter  __first,
_Iter  __last,
_Iter  __result,
_Comp  __comp 
)
constexpr

Definition at line 2128 of file ranges_algo.h.

◆ __push_heap()

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

Definition at line 2042 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 3672 of file ranges_algo.h.

◆ __stable_partition_adaptive()

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

Definition at line 3317 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 2624 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 2637 of file ranges_algo.h.

◆ __unguarded_insertion_sort()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__unguarded_insertion_sort ( _Iter  __first,
_Iter  __last,
_Comp  __comp 
)
constexpr

Definition at line 2388 of file ranges_algo.h.

◆ __unguarded_linear_insert()

template<typename _Iter , typename _Comp >
constexpr void std::ranges::__detail::__unguarded_linear_insert ( _Iter  __last,
_Comp  __comp 
)
constexpr

Definition at line 2352 of file ranges_algo.h.

◆ __unguarded_partition()

template<typename _Iter , typename _Comp >
constexpr _Iter std::ranges::__detail::__unguarded_partition ( _Iter  __first,
_Iter  __last,
_Iter  __pivot,
_Comp  __comp 
)
constexpr

Definition at line 2413 of file ranges_algo.h.

◆ __unguarded_partition_pivot()

template<typename _Iter , typename _Comp >
constexpr _Iter std::ranges::__detail::__unguarded_partition_pivot ( _Iter  __first,
_Iter  __last,
_Comp  __comp 
)
constexpr

Definition at line 2431 of file ranges_algo.h.

Variable Documentation

◆ __sort_threshold

constexpr int std::ranges::__detail::__sort_threshold
inlineconstexpr

Definition at line 2394 of file ranges_algo.h.

◆ all_of

constexpr __all_of_fn std::ranges::all_of
inlineconstexpr

Definition at line 133 of file ranges_algo.h.

◆ any_of

constexpr __any_of_fn std::ranges::any_of
inlineconstexpr

Definition at line 161 of file ranges_algo.h.

◆ binary_search

constexpr __binary_search_fn std::ranges::binary_search
inlineconstexpr

Definition at line 3194 of file ranges_algo.h.

◆ clamp

constexpr __clamp_fn std::ranges::clamp
inlineconstexpr

Definition at line 4271 of file ranges_algo.h.

◆ contains

constexpr __contains_fn std::ranges::contains
inlineconstexpr

Definition at line 4812 of file ranges_algo.h.

◆ contains_subrange

constexpr __contains_subrange_fn std::ranges::contains_subrange
inlineconstexpr

Definition at line 4845 of file ranges_algo.h.

◆ copy_if

constexpr __copy_if_fn std::ranges::copy_if
inlineconstexpr

Definition at line 935 of file ranges_algo.h.

◆ count

constexpr __count_fn std::ranges::count
inlineconstexpr

Definition at line 347 of file ranges_algo.h.

◆ count_if

constexpr __count_if_fn std::ranges::count_if
inlineconstexpr

Definition at line 377 of file ranges_algo.h.

◆ ends_with

constexpr __ends_with_fn std::ranges::ends_with
inlineconstexpr

Definition at line 719 of file ranges_algo.h.

◆ equal_range

constexpr __equal_range_fn std::ranges::equal_range
inlineconstexpr

Definition at line 3158 of file ranges_algo.h.

◆ find_end

constexpr __find_end_fn std::ranges::find_end
inlineconstexpr

Definition at line 797 of file ranges_algo.h.

◆ find_first_of

constexpr __find_first_of_fn std::ranges::find_first_of
inlineconstexpr

Definition at line 312 of file ranges_algo.h.

◆ find_last

constexpr __find_last_fn std::ranges::find_last
inlineconstexpr

Definition at line 4895 of file ranges_algo.h.

◆ find_last_if

constexpr __find_last_if_fn std::ranges::find_last_if
inlineconstexpr

Definition at line 4937 of file ranges_algo.h.

◆ find_last_if_not

constexpr __find_last_if_not_fn std::ranges::find_last_if_not
inlineconstexpr

Definition at line 4979 of file ranges_algo.h.

◆ fold_left

constexpr __fold_left_fn std::ranges::fold_left
inlineconstexpr

Definition at line 5107 of file ranges_algo.h.

◆ fold_left_first

constexpr __fold_left_first_fn std::ranges::fold_left_first
inlineconstexpr

Definition at line 5174 of file ranges_algo.h.

◆ fold_left_first_with_iter

constexpr __fold_left_first_with_iter_fn std::ranges::fold_left_first_with_iter
inlineconstexpr

Definition at line 5152 of file ranges_algo.h.

◆ fold_left_with_iter

constexpr __fold_left_with_iter_fn std::ranges::fold_left_with_iter
inlineconstexpr

Definition at line 5085 of file ranges_algo.h.

◆ fold_right

constexpr __fold_right_fn std::ranges::fold_right
inlineconstexpr

Definition at line 5204 of file ranges_algo.h.

◆ fold_right_last

constexpr __fold_right_last_fn std::ranges::fold_right_last
inlineconstexpr

Definition at line 5235 of file ranges_algo.h.

◆ for_each

constexpr __for_each_fn std::ranges::for_each
inlineconstexpr

Definition at line 238 of file ranges_algo.h.

◆ for_each_n

constexpr __for_each_n_fn std::ranges::for_each_n
inlineconstexpr

Definition at line 271 of file ranges_algo.h.

◆ generate

constexpr __generate_fn std::ranges::generate
inlineconstexpr

Definition at line 1277 of file ranges_algo.h.

◆ generate_n

constexpr __generate_n_fn std::ranges::generate_n
inlineconstexpr

Definition at line 1252 of file ranges_algo.h.

◆ includes

constexpr __includes_fn std::ranges::includes
inlineconstexpr

Definition at line 3936 of file ranges_algo.h.

◆ inplace_merge

constexpr __inplace_merge_fn std::ranges::inplace_merge
inlineconstexpr

Definition at line 3886 of file ranges_algo.h.

◆ is_heap

constexpr __is_heap_fn std::ranges::is_heap
inlineconstexpr

Definition at line 2324 of file ranges_algo.h.

◆ is_heap_until

constexpr __is_heap_until_fn std::ranges::is_heap_until
inlineconstexpr

Definition at line 2294 of file ranges_algo.h.

◆ is_partitioned

constexpr __is_partitioned_fn std::ranges::is_partitioned
inlineconstexpr

Definition at line 3225 of file ranges_algo.h.

◆ is_permutation

constexpr __is_permutation_fn std::ranges::is_permutation
inlineconstexpr

Definition at line 896 of file ranges_algo.h.

◆ is_sorted

constexpr __is_sorted_fn std::ranges::is_sorted
inlineconstexpr

Definition at line 2931 of file ranges_algo.h.

◆ is_sorted_until

constexpr __is_sorted_until_fn std::ranges::is_sorted_until
inlineconstexpr

Definition at line 2896 of file ranges_algo.h.

◆ lexicographical_compare

constexpr __lexicographical_compare_fn std::ranges::lexicographical_compare
inlineconstexpr

Definition at line 4644 of file ranges_algo.h.

◆ lower_bound

constexpr __lower_bound_fn std::ranges::lower_bound
inlineconstexpr

Definition at line 3047 of file ranges_algo.h.

◆ make_heap

constexpr __make_heap_fn std::ranges::make_heap
inlineconstexpr

Definition at line 2219 of file ranges_algo.h.

◆ max

constexpr __max_fn std::ranges::max
inlineconstexpr

Definition at line 4243 of file ranges_algo.h.

◆ max_element

constexpr __max_element_fn std::ranges::max_element
inlineconstexpr

Definition at line 4458 of file ranges_algo.h.

◆ merge

constexpr __merge_fn std::ranges::merge
inlineconstexpr

Definition at line 3604 of file ranges_algo.h.

◆ min_element

constexpr __min_element_fn std::ranges::min_element
inlineconstexpr

Definition at line 4421 of file ranges_algo.h.

◆ minmax

constexpr __minmax_fn std::ranges::minmax
inlineconstexpr

Definition at line 4384 of file ranges_algo.h.

◆ minmax_element

constexpr __minmax_element_fn std::ranges::minmax_element
inlineconstexpr

Definition at line 4532 of file ranges_algo.h.

◆ next_permutation

constexpr __next_permutation_fn std::ranges::next_permutation
inlineconstexpr

Definition at line 4725 of file ranges_algo.h.

◆ none_of

constexpr __none_of_fn std::ranges::none_of
inlineconstexpr

Definition at line 189 of file ranges_algo.h.

◆ nth_element

constexpr __nth_element_fn std::ranges::nth_element
inlineconstexpr

Definition at line 2999 of file ranges_algo.h.

◆ partial_sort

constexpr __partial_sort_fn std::ranges::partial_sort
inlineconstexpr

Definition at line 2786 of file ranges_algo.h.

◆ partial_sort_copy

constexpr __partial_sort_copy_fn std::ranges::partial_sort_copy
inlineconstexpr

Definition at line 2861 of file ranges_algo.h.

◆ partition

constexpr __partition_fn std::ranges::partition
inlineconstexpr

Definition at line 3296 of file ranges_algo.h.

◆ partition_copy

constexpr __partition_copy_fn std::ranges::partition_copy
inlineconstexpr

Definition at line 3502 of file ranges_algo.h.

◆ partition_point

constexpr __partition_point_fn std::ranges::partition_point
inlineconstexpr

Definition at line 3543 of file ranges_algo.h.

◆ pop_heap

constexpr __pop_heap_fn std::ranges::pop_heap
inlineconstexpr

Definition at line 2172 of file ranges_algo.h.

◆ prev_permutation

constexpr __prev_permutation_fn std::ranges::prev_permutation
inlineconstexpr

Definition at line 4787 of file ranges_algo.h.

◆ push_heap

constexpr __push_heap_fn std::ranges::push_heap
inlineconstexpr

Definition at line 2093 of file ranges_algo.h.

◆ remove

constexpr __remove_fn std::ranges::remove
inlineconstexpr

Definition at line 1352 of file ranges_algo.h.

◆ remove_copy

constexpr __remove_copy_fn std::ranges::remove_copy
inlineconstexpr

Definition at line 1435 of file ranges_algo.h.

◆ remove_copy_if

constexpr __remove_copy_if_fn std::ranges::remove_copy_if
inlineconstexpr

Definition at line 1391 of file ranges_algo.h.

◆ remove_if

constexpr __remove_if_fn std::ranges::remove_if
inlineconstexpr

Definition at line 1316 of file ranges_algo.h.

◆ replace

constexpr __replace_fn std::ranges::replace
inlineconstexpr

Definition at line 1109 of file ranges_algo.h.

◆ replace_copy

constexpr __replace_copy_fn std::ranges::replace_copy
inlineconstexpr

Definition at line 1192 of file ranges_algo.h.

◆ replace_copy_if

constexpr __replace_copy_if_fn std::ranges::replace_copy_if
inlineconstexpr

Definition at line 1236 of file ranges_algo.h.

◆ replace_if

constexpr __replace_if_fn std::ranges::replace_if
inlineconstexpr

Definition at line 1143 of file ranges_algo.h.

◆ reverse

constexpr __reverse_fn std::ranges::reverse
inlineconstexpr

Definition at line 1615 of file ranges_algo.h.

◆ reverse_copy

constexpr __reverse_copy_fn std::ranges::reverse_copy
inlineconstexpr

Definition at line 1649 of file ranges_algo.h.

◆ rotate

constexpr __rotate_fn std::ranges::rotate
inlineconstexpr

Definition at line 1800 of file ranges_algo.h.

◆ rotate_copy

constexpr __rotate_copy_fn std::ranges::rotate_copy
inlineconstexpr

Definition at line 1833 of file ranges_algo.h.

◆ sample

constexpr __sample_fn std::ranges::sample
inlineconstexpr

Definition at line 1947 of file ranges_algo.h.

◆ search_n

constexpr __search_n_fn std::ranges::search_n
inlineconstexpr

Definition at line 472 of file ranges_algo.h.

◆ set_difference

constexpr __set_difference_fn std::ranges::set_difference
inlineconstexpr

Definition at line 4119 of file ranges_algo.h.

◆ set_intersection

constexpr __set_intersection_fn std::ranges::set_intersection
inlineconstexpr

Definition at line 4062 of file ranges_algo.h.

◆ set_symmetric_difference

constexpr __set_symmetric_difference_fn std::ranges::set_symmetric_difference
inlineconstexpr

Definition at line 4187 of file ranges_algo.h.

◆ set_union

constexpr __set_union_fn std::ranges::set_union
inlineconstexpr

Definition at line 4004 of file ranges_algo.h.

◆ shift_left

constexpr __shift_left_fn std::ranges::shift_left
inlineconstexpr

Definition at line 5358 of file ranges_algo.h.

◆ shift_right

constexpr __shift_right_fn std::ranges::shift_right
inlineconstexpr

Definition at line 5441 of file ranges_algo.h.

◆ shuffle

constexpr __shuffle_fn std::ranges::shuffle
inlineconstexpr

Definition at line 2036 of file ranges_algo.h.

◆ sort

constexpr __sort_fn std::ranges::sort
inlineconstexpr

Definition at line 2514 of file ranges_algo.h.

◆ sort_heap

constexpr __sort_heap_fn std::ranges::sort_heap
inlineconstexpr

Definition at line 2257 of file ranges_algo.h.

◆ stable_partition

constexpr __stable_partition_fn std::ranges::stable_partition
inlineconstexpr

Definition at line 3426 of file ranges_algo.h.

◆ stable_sort

constexpr __stable_sort_fn std::ranges::stable_sort
inlineconstexpr

Definition at line 2743 of file ranges_algo.h.

◆ starts_with

constexpr __starts_with_fn std::ranges::starts_with
inlineconstexpr

Definition at line 555 of file ranges_algo.h.

◆ swap_ranges

constexpr __swap_ranges_fn std::ranges::swap_ranges
inlineconstexpr

Definition at line 966 of file ranges_algo.h.

◆ transform

constexpr __transform_fn std::ranges::transform
inlineconstexpr

Definition at line 1069 of file ranges_algo.h.

◆ unique

constexpr __unique_fn std::ranges::unique
inlineconstexpr

Definition at line 1473 of file ranges_algo.h.

◆ unique_copy

constexpr __unique_copy_fn std::ranges::unique_copy
inlineconstexpr

Definition at line 1566 of file ranges_algo.h.

◆ upper_bound

constexpr __upper_bound_fn std::ranges::upper_bound
inlineconstexpr

Definition at line 3095 of file ranges_algo.h.