ranges_algo.h File Reference

Go to the source code of this file.

## Namespaces

namespace | std

## Macros

#define | __cpp_lib_shift

## Typedefs

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 _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 _Comp , typename _Proj >
constexpr auto | std::ranges::__detail::__make_comp_proj (_Comp &__comp, _Proj &__proj)
template<typename _Pred , typename _Proj >
constexpr auto | std::ranges::__detail::__make_pred_proj (_Pred &__pred, _Proj &__proj)
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 __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.

## Macro Definition Documentation

## __cpp_lib_shift

#define __cpp_lib_shift

Definition at line 3955 of file ranges_algo.h.

## Typedef Documentation

## 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 699 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 602 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 208 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 179 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 2482 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 3142 of file ranges_algo.h.

## minmax_result

template<typename _Tp >

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

Definition at line 2974 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 3347 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 1875 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 2390 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 3409 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 1038 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 1077 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 885 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 842 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 1295 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 1476 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 2750 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 2692 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 2807 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 2624 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 641 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 672 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 1163 of file ranges_algo.h.

## Function Documentation

## __make_comp_proj()

template<typename _Comp , typename _Proj >

constexpr auto std::ranges::__detail::__make_comp_proj | ( | _Comp & | __comp,
|  | _Proj & | __proj
| ) |  |

constexpr

Definition at line 52 of file ranges_algo.h.

## __make_pred_proj()

template<typename _Pred , typename _Proj >

constexpr auto std::ranges::__detail::__make_pred_proj | ( | _Pred & | __pred,
|  | _Proj & | __proj
| ) |  |

constexpr

Definition at line 65 of file ranges_algo.h.

## Variable Documentation

## all_of

constexpr __all_of_fn std::ranges::all_of

inline constexpr

Definition at line 100 of file ranges_algo.h.

## any_of

constexpr __any_of_fn std::ranges::any_of

inline constexpr

Definition at line 128 of file ranges_algo.h.

## binary_search

constexpr __binary_search_fn std::ranges::binary_search

inline constexpr

Definition at line 2228 of file ranges_algo.h.

## clamp

constexpr __clamp_fn std::ranges::clamp

inline constexpr

Definition at line 2952 of file ranges_algo.h.

## copy_if

constexpr __copy_if_fn std::ranges::copy_if

inline constexpr

Definition at line 638 of file ranges_algo.h.

## count

constexpr __count_fn std::ranges::count

inline constexpr

Definition at line 311 of file ranges_algo.h.

## count_if

constexpr __count_if_fn std::ranges::count_if

inline constexpr

Definition at line 341 of file ranges_algo.h.

## equal_range

constexpr __equal_range_fn std::ranges::equal_range

inline constexpr

Definition at line 2195 of file ranges_algo.h.

## find_end

constexpr __find_end_fn std::ranges::find_end

inline constexpr

Definition at line 510 of file ranges_algo.h.

## find_first_of

constexpr __find_first_of_fn std::ranges::find_first_of

inline constexpr

Definition at line 279 of file ranges_algo.h.

## for_each

constexpr __for_each_fn std::ranges::for_each

inline constexpr

Definition at line 205 of file ranges_algo.h.

## for_each_n

constexpr __for_each_n_fn std::ranges::for_each_n

inline constexpr

Definition at line 238 of file ranges_algo.h.

## generate

constexpr __generate_fn std::ranges::generate

inline constexpr

Definition at line 963 of file ranges_algo.h.

## generate_n

constexpr __generate_n_fn std::ranges::generate_n

inline constexpr

Definition at line 938 of file ranges_algo.h.

## includes

constexpr __includes_fn std::ranges::includes

inline constexpr

Definition at line 2621 of file ranges_algo.h.

## inplace_merge

constexpr __inplace_merge_fn std::ranges::inplace_merge

inline constexpr

Definition at line 2571 of file ranges_algo.h.

## is_heap

constexpr __is_heap_fn std::ranges::is_heap

inline constexpr

Definition at line 1773 of file ranges_algo.h.

## is_heap_until

constexpr __is_heap_until_fn std::ranges::is_heap_until

inline constexpr

Definition at line 1743 of file ranges_algo.h.

## is_partitioned

constexpr __is_partitioned_fn std::ranges::is_partitioned

inline constexpr

Definition at line 2259 of file ranges_algo.h.

## is_permutation

constexpr __is_permutation_fn std::ranges::is_permutation

inline constexpr

Definition at line 599 of file ranges_algo.h.

## is_sorted

constexpr __is_sorted_fn std::ranges::is_sorted

inline constexpr

Definition at line 2017 of file ranges_algo.h.

## is_sorted_until

constexpr __is_sorted_until_fn std::ranges::is_sorted_until

inline constexpr

Definition at line 1982 of file ranges_algo.h.

## lexicographical_compare

constexpr __lexicographical_compare_fn std::ranges::lexicographical_compare

inline constexpr

Definition at line 3325 of file ranges_algo.h.

## lower_bound

constexpr __lower_bound_fn std::ranges::lower_bound

inline constexpr

Definition at line 2091 of file ranges_algo.h.

## make_heap

constexpr __make_heap_fn std::ranges::make_heap

inline constexpr

Definition at line 1678 of file ranges_algo.h.

## max

constexpr __max_fn std::ranges::max

inline constexpr

Definition at line 2928 of file ranges_algo.h.

## max_element

constexpr __max_element_fn std::ranges::max_element

inline constexpr

Definition at line 3139 of file ranges_algo.h.

## merge

constexpr __merge_fn std::ranges::merge

inline constexpr

Definition at line 2540 of file ranges_algo.h.

## min_element

constexpr __min_element_fn std::ranges::min_element

inline constexpr

Definition at line 3102 of file ranges_algo.h.

## minmax

constexpr __minmax_fn std::ranges::minmax

inline constexpr

Definition at line 3065 of file ranges_algo.h.

## minmax_element

constexpr __minmax_element_fn std::ranges::minmax_element

inline constexpr

Definition at line 3213 of file ranges_algo.h.

## next_permutation

constexpr __next_permutation_fn std::ranges::next_permutation

inline constexpr

Definition at line 3406 of file ranges_algo.h.

## none_of

constexpr __none_of_fn std::ranges::none_of

inline constexpr

Definition at line 156 of file ranges_algo.h.

## nth_element

constexpr __nth_element_fn std::ranges::nth_element

inline constexpr

Definition at line 2047 of file ranges_algo.h.

## partial_sort

constexpr __partial_sort_fn std::ranges::partial_sort

inline constexpr

Definition at line 1872 of file ranges_algo.h.

## partial_sort_copy

constexpr __partial_sort_copy_fn std::ranges::partial_sort_copy

inline constexpr

Definition at line 1947 of file ranges_algo.h.

## partition

constexpr __partition_fn std::ranges::partition

inline constexpr

Definition at line 2330 of file ranges_algo.h.

## partition_copy

constexpr __partition_copy_fn std::ranges::partition_copy

inline constexpr

Definition at line 2438 of file ranges_algo.h.

## partition_point

constexpr __partition_point_fn std::ranges::partition_point

inline constexpr

Definition at line 2479 of file ranges_algo.h.

## pop_heap

constexpr __pop_heap_fn std::ranges::pop_heap

inline constexpr

Definition at line 1650 of file ranges_algo.h.

## prev_permutation

constexpr __prev_permutation_fn std::ranges::prev_permutation

inline constexpr

Definition at line 3468 of file ranges_algo.h.

## push_heap

constexpr __push_heap_fn std::ranges::push_heap

inline constexpr

Definition at line 1622 of file ranges_algo.h.

## remove

constexpr __remove_fn std::ranges::remove

inline constexpr

Definition at line 1035 of file ranges_algo.h.

## remove_copy

constexpr __remove_copy_fn std::ranges::remove_copy

inline constexpr

Definition at line 1115 of file ranges_algo.h.

## remove_copy_if

constexpr __remove_copy_if_fn std::ranges::remove_copy_if

inline constexpr

Definition at line 1074 of file ranges_algo.h.

## remove_if

constexpr __remove_if_fn std::ranges::remove_if

inline constexpr

Definition at line 1002 of file ranges_algo.h.

## replace

constexpr __replace_fn std::ranges::replace

inline constexpr

Definition at line 808 of file ranges_algo.h.

## replace_copy

constexpr __replace_copy_fn std::ranges::replace_copy

inline constexpr

Definition at line 882 of file ranges_algo.h.

## replace_copy_if

constexpr __replace_copy_if_fn std::ranges::replace_copy_if

inline constexpr

Definition at line 922 of file ranges_algo.h.

## replace_if

constexpr __replace_if_fn std::ranges::replace_if

inline constexpr

Definition at line 839 of file ranges_algo.h.

## reverse

constexpr __reverse_fn std::ranges::reverse

inline constexpr

Definition at line 1292 of file ranges_algo.h.

## reverse_copy

constexpr __reverse_copy_fn std::ranges::reverse_copy

inline constexpr

Definition at line 1326 of file ranges_algo.h.

## rotate

constexpr __rotate_fn std::ranges::rotate

inline constexpr

Definition at line 1473 of file ranges_algo.h.

## rotate_copy

constexpr __rotate_copy_fn std::ranges::rotate_copy

inline constexpr

Definition at line 1506 of file ranges_algo.h.

## sample

constexpr __sample_fn std::ranges::sample

inline constexpr

Definition at line 1565 of file ranges_algo.h.

## search_n

constexpr __search_n_fn std::ranges::search_n

inline constexpr

Definition at line 433 of file ranges_algo.h.

## set_difference

constexpr __set_difference_fn std::ranges::set_difference

inline constexpr

Definition at line 2804 of file ranges_algo.h.

## set_intersection

constexpr __set_intersection_fn std::ranges::set_intersection

inline constexpr

Definition at line 2747 of file ranges_algo.h.

## set_symmetric_difference

constexpr __set_symmetric_difference_fn std::ranges::set_symmetric_difference

inline constexpr

Definition at line 2872 of file ranges_algo.h.

## set_union

constexpr __set_union_fn std::ranges::set_union

inline constexpr

Definition at line 2689 of file ranges_algo.h.

## shuffle

constexpr __shuffle_fn std::ranges::shuffle

inline constexpr

Definition at line 1593 of file ranges_algo.h.

## sort

constexpr __sort_fn std::ranges::sort

inline constexpr

Definition at line 1801 of file ranges_algo.h.

## sort_heap

constexpr __sort_heap_fn std::ranges::sort_heap

inline constexpr

Definition at line 1706 of file ranges_algo.h.

## stable_partition

constexpr __stable_partition_fn std::ranges::stable_partition

inline constexpr

Definition at line 2362 of file ranges_algo.h.

## stable_sort

constexpr __stable_sort_fn std::ranges::stable_sort

inline constexpr

Definition at line 1829 of file ranges_algo.h.

## swap_ranges

constexpr __swap_ranges_fn std::ranges::swap_ranges

inline constexpr

Definition at line 669 of file ranges_algo.h.

## transform

constexpr __transform_fn std::ranges::transform

inline constexpr

Definition at line 772 of file ranges_algo.h.

## unique

constexpr __unique_fn std::ranges::unique

inline constexpr

Definition at line 1153 of file ranges_algo.h.

## unique_copy

constexpr __unique_copy_fn std::ranges::unique_copy

inline constexpr

Definition at line 1243 of file ranges_algo.h.

## upper_bound

constexpr __upper_bound_fn std::ranges::upper_bound

inline constexpr

Definition at line 2135 of file ranges_algo.h.