libstdc++
GNU C++ library
std::ranges Namespace Reference

Namespaces

 __cust
 
 __cust_access
 
 __cust_imove
 
 __cust_iswap
 
 __cust_swap
 
 __detail
 
 views
 

Classes

struct  __adjacent_find_fn
 
struct  __advance_fn
 
struct  __all_of_fn
 
struct  __any_of_fn
 
struct  __binary_search_fn
 
struct  __clamp_fn
 
struct  __copy_backward_fn
 
struct  __copy_fn
 
struct  __copy_if_fn
 
struct  __copy_n_fn
 
struct  __count_fn
 
struct  __count_if_fn
 
struct  __distance_fn
 
struct  __equal_fn
 
struct  __equal_range_fn
 
struct  __fill_fn
 
struct  __fill_n_fn
 
struct  __find_end_fn
 
struct  __find_first_of_fn
 
struct  __find_fn
 
struct  __find_if_fn
 
struct  __find_if_not_fn
 
struct  __for_each_fn
 
struct  __for_each_n_fn
 
struct  __generate_fn
 
struct  __generate_n_fn
 
struct  __includes_fn
 
struct  __inplace_merge_fn
 
struct  __is_heap_fn
 
struct  __is_heap_until_fn
 
struct  __is_partitioned_fn
 
struct  __is_permutation_fn
 
struct  __is_sorted_fn
 
struct  __is_sorted_until_fn
 
struct  __lexicographical_compare_fn
 
struct  __lower_bound_fn
 
struct  __make_heap_fn
 
struct  __max_element_fn
 
struct  __max_fn
 
struct  __merge_fn
 
struct  __min_element_fn
 
struct  __min_fn
 
struct  __minmax_element_fn
 
struct  __minmax_fn
 
struct  __mismatch_fn
 
struct  __move_backward_fn
 
struct  __move_fn
 
struct  __next_fn
 
struct  __next_permutation_fn
 
struct  __none_of_fn
 
struct  __nth_element_fn
 
struct  __partial_sort_copy_fn
 
struct  __partial_sort_fn
 
struct  __partition_copy_fn
 
struct  __partition_fn
 
struct  __partition_point_fn
 
struct  __pop_heap_fn
 
struct  __prev_fn
 
struct  __prev_permutation_fn
 
struct  __push_heap_fn
 
struct  __remove_copy_fn
 
struct  __remove_copy_if_fn
 
struct  __remove_fn
 
struct  __remove_if_fn
 
struct  __replace_copy_fn
 
struct  __replace_copy_if_fn
 
struct  __replace_fn
 
struct  __replace_if_fn
 
struct  __reverse_copy_fn
 
struct  __reverse_fn
 
struct  __rotate_copy_fn
 
struct  __rotate_fn
 
struct  __sample_fn
 
struct  __search_fn
 
struct  __search_n_fn
 
struct  __set_difference_fn
 
struct  __set_intersection_fn
 
struct  __set_symmetric_difference_fn
 
struct  __set_union_fn
 
struct  __shuffle_fn
 
struct  __sort_fn
 
struct  __sort_heap_fn
 
struct  __stable_partition_fn
 
struct  __stable_sort_fn
 
struct  __swap_ranges_fn
 
struct  __transform_fn
 
struct  __unique_copy_fn
 
struct  __unique_fn
 
struct  __upper_bound_fn
 
class  basic_istream_view
 
struct  dangling
 
class  drop_view
 
class  drop_while_view
 
class  elements_view
 
class  empty_view
 
struct  equal_to
 
class  filter_view
 
struct  greater
 
struct  greater_equal
 
struct  in_found_result
 
struct  in_fun_result
 
struct  in_in_out_result
 
struct  in_in_result
 
struct  in_out_out_result
 
struct  in_out_result
 
class  iota_view
 
class  join_view
 
class  lazy_split_view
 
struct  less
 
struct  less_equal
 
struct  min_max_result
 
struct  not_equal_to
 
class  ref_view
 
class  reverse_view
 
class  single_view
 
class  split_view
 
class  take_view
 
class  take_while_view
 
class  transform_view
 
struct  view_base
 
class  view_interface
 

Typedefs

template<typename _Iter1 , typename _Iter2 , typename _Out >
using binary_transform_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<range _Range>
using borrowed_iterator_t = conditional_t< borrowed_range< _Range >, iterator_t< _Range >, dangling >
 
template<range _Range>
using borrowed_subrange_t = conditional_t< borrowed_range< _Range >, subrange< iterator_t< _Range > >, dangling >
 
template<typename _Iter1 , typename _Iter2 >
using copy_backward_result = in_out_result< _Iter1, _Iter2 >
 
template<typename _Iter , typename _Out >
using copy_if_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using copy_n_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Fp >
using for_each_n_result = in_fun_result< _Iter, _Fp >
 
template<typename _Iter , typename _Fp >
using for_each_result = in_fun_result< _Iter, _Fp >
 
template<typename _Tp >
using iterator_t = std::__detail::__range_iter_t< _Tp >
 
template<typename _Range >
using keys_view = elements_view< views::all_t< _Range >, 0 >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using merge_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter >
using minmax_element_result = min_max_result< _Iter >
 
template<typename _Tp >
using minmax_result = min_max_result< _Tp >
 
template<typename _Iter1 , typename _Iter2 >
using mismatch_result = in_in_result< _Iter1, _Iter2 >
 
template<typename _Iter1 , typename _Iter2 >
using move_backward_result = in_out_result< _Iter1, _Iter2 >
 
template<typename _Iter , typename _Out >
using move_result = in_out_result< _Iter, _Out >
 
template<typename _Iter >
using next_permutation_result = in_found_result< _Iter >
 
template<typename _Iter , typename _Out >
using partial_sort_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out1 , typename _Out2 >
using partition_copy_result = in_out_out_result< _Iter, _Out1, _Out2 >
 
template<typename _Iter >
using prev_permutation_result = in_found_result< _Iter >
 
template<range _Range>
using range_difference_t = iter_difference_t< iterator_t< _Range > >
 
template<range _Range>
using range_reference_t = iter_reference_t< iterator_t< _Range > >
 
template<range _Range>
using range_rvalue_reference_t = iter_rvalue_reference_t< iterator_t< _Range > >
 
template<sized_range _Range>
using range_size_t = decltype(ranges::size(std::declval< _Range & >()))
 
template<range _Range>
using range_value_t = iter_value_t< iterator_t< _Range > >
 
template<typename _Iter , typename _Out >
using remove_copy_if_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using remove_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using replace_copy_if_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using replace_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using reverse_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using rotate_copy_result = in_out_result< _Iter, _Out >
 
template<range _Range>
using sentinel_t = decltype(ranges::end(std::declval< _Range & >()))
 
template<typename _Iter , typename _Out >
using set_difference_result = in_out_result< _Iter, _Out >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using set_intersection_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using set_symmetric_difference_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using set_union_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter1 , typename _Iter2 >
using swap_ranges_result = in_in_result< _Iter1, _Iter2 >
 
template<typename _Iter , typename _Out >
using unary_transform_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using unique_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Range >
using values_view = elements_view< views::all_t< _Range >, 1 >
 

Enumerations

enum class  subrange_kind : bool { unsized , sized }
 

Functions

copy_result< _Iter, _Out > __copy_or_move (_Iter __first, _Sent __last, _Out __result)
 
copy_backward_result< _Iter, _Out > __copy_or_move_backward (_Iter __first, _Sent __last, _Out __result)
 
template<typename _Range >
requires(!common_range< _Vp >) &&copyable< iterator_t< _Vp >> class common_view common_view (_Range &&) -> common_view< views::all_t< _Range >>
 
template<typename _Range >
 drop_view (_Range &&, range_difference_t< _Range >) -> drop_view< views::all_t< _Range >>
 
template<typename _Range , typename _Pred >
 drop_while_view (_Range &&, _Pred) -> drop_while_view< views::all_t< _Range >, _Pred >
 
else return __r end ()
 
template<typename _Range , typename _Pred >
 filter_view (_Range &&, _Pred) -> filter_view< views::all_t< _Range >, _Pred >
 
template<typename _Val , typename _CharT , typename _Traits >
basic_istream_view< _Val, _CharT, _Traits > istream_view (basic_istream< _CharT, _Traits > &__s)
 
template<typename _Range >
 join_view (_Range &&) -> join_view< views::all_t< _Range >>
 
template<typename _Range , typename _Pattern >
 lazy_split_view (_Range &&, _Pattern &&) -> lazy_split_view< views::all_t< _Range >, views::all_t< _Pattern >>
 
template<input_range _Range>
 lazy_split_view (_Range &&, range_value_t< _Range >) -> lazy_split_view< views::all_t< _Range >, single_view< range_value_t< _Range >>>
 
template<typename _Range >
 ref_view (_Range &) -> ref_view< _Range >
 
template<typename _Winc , typename _Bound >
 requires (!__detail::__is_integer_like< _Winc >||!__detail::__is_integer_like< _Bound >||(__detail::__is_signed_integer_like< _Winc >==__detail::__is_signed_integer_like< _Bound >)) iota_view(_Winc
 
template<bool _IsMove, bidirectional_iterator _Iter, sentinel_for< _Iter > _Sent, bidirectional_iterator _Out>
 requires (_IsMove ? indirectly_movable< _Iter, _Out > :indirectly_copyable< _Iter, _Out >) const expr conditional_t< _IsMove
 
template<size_t _Num, class _It , class _Sent , subrange_kind _Kind>
 requires (_Num< 2) const expr auto get(const subrange< _It
 
template<typename _Range >
 reverse_view (_Range &&) -> reverse_view< views::all_t< _Range >>
 
template<typename _Tp >
 single_view (_Tp) -> single_view< _Tp >
 
template<typename _Range , typename _Pattern >
 split_view (_Range &&, _Pattern &&) -> split_view< views::all_t< _Range >, views::all_t< _Pattern >>
 
template<forward_range _Range>
 split_view (_Range &&, range_value_t< _Range >) -> split_view< views::all_t< _Range >, single_view< range_value_t< _Range >>>
 
template<input_or_output_iterator _It, sentinel_for< _It > _Sent>
requires(_Kind==subrange_kind::sized||!sized_sentinel_for< _Sent, _It >) class subrange subrange (_It, _Sent) -> subrange< _It, _Sent >
 
template<input_or_output_iterator _It, sentinel_for< _It > _Sent>
 subrange (_It, _Sent, __detail::__make_unsigned_like_t< iter_difference_t< _It >>) -> subrange< _It, _Sent, subrange_kind::sized >
 
template<borrowed_range _Rng>
 subrange (_Rng &&) -> subrange< iterator_t< _Rng >, sentinel_t< _Rng >,(sized_range< _Rng >||sized_sentinel_for< sentinel_t< _Rng >, iterator_t< _Rng >>) ? subrange_kind::sized :subrange_kind::unsized >
 
template<borrowed_range _Rng>
 subrange (_Rng &&, __detail::__make_unsigned_like_t< range_difference_t< _Rng >>) -> subrange< iterator_t< _Rng >, sentinel_t< _Rng >, subrange_kind::sized >
 
template<typename _Range >
 take_view (_Range &&, range_difference_t< _Range >) -> take_view< views::all_t< _Range >>
 
template<typename _Range , typename _Pred >
 take_while_view (_Range &&, _Pred) -> take_while_view< views::all_t< _Range >, _Pred >
 
template<typename _Range , typename _Fp >
 transform_view (_Range &&, _Fp) -> transform_view< views::all_t< _Range >, _Fp >
 

Variables

_Kind & __r
 
 _Sent
 
constexpr __adjacent_find_fn adjacent_find
 
constexpr __advance_fn advance
 
constexpr __all_of_fn all_of
 
constexpr __any_of_fn any_of
 
constexpr __cust_access::_Begin begin
 
template<typename _Tp >
concept bidirectional_range
 
constexpr __binary_search_fn binary_search
 
template<typename _Tp >
concept borrowed_range
 
constexpr __cust_access::_CBegin cbegin
 
constexpr __cust_access::_CData cdata
 
constexpr __cust_access::_CEnd cend
 
constexpr __clamp_fn clamp
 
template<typename _Tp >
concept common_range
 
template<typename _Tp >
concept contiguous_range
 
constexpr __copy_fn copy
 
constexpr __copy_backward_fn copy_backward
 
constexpr __copy_if_fn copy_if
 
constexpr __copy_n_fn copy_n
 
constexpr __count_fn count
 
constexpr __count_if_fn count_if
 
constexpr __cust_access::_CRBegin crbegin
 
constexpr __cust_access::_CREnd crend
 
constexpr __cust_access::_Data data
 
template<typename >
constexpr bool disable_sized_range
 
constexpr __distance_fn distance
 
constexpr __cust_access::_Empty empty
 
template<typename _Tp >
constexpr bool enable_borrowed_range
 
template<typename _CharT , typename _Traits >
constexpr bool enable_borrowed_range< basic_string_view< _CharT, _Traits > >
 
template<typename _Tp >
constexpr bool enable_borrowed_range< common_view< _Tp > >
 
template<typename _Tp >
constexpr bool enable_borrowed_range< drop_view< _Tp > >
 
template<typename _Tp , typename _Pred >
constexpr bool enable_borrowed_range< drop_while_view< _Tp, _Pred > >
 
template<typename _Tp , size_t _Nm>
constexpr bool enable_borrowed_range< elements_view< _Tp, _Nm > >
 
template<typename _Tp >
constexpr bool enable_borrowed_range< empty_view< _Tp > >
 
template<typename _Winc , typename _Bound >
constexpr bool enable_borrowed_range< iota_view< _Winc, _Bound > >
 
template<typename _Tp >
constexpr bool enable_borrowed_range< ref_view< _Tp > >
 
template<typename _Tp >
constexpr bool enable_borrowed_range< reverse_view< _Tp > >
 
template<typename _It , typename _Sent , subrange_kind _Kind>
constexpr bool enable_borrowed_range< subrange< _It, _Sent, _Kind > >
 
template<typename _Tp >
constexpr bool enable_borrowed_range< take_view< _Tp > >
 
template<typename _Tp >
constexpr bool enable_view
 
template<typename _CharT , typename _Traits >
constexpr bool enable_view< basic_string_view< _CharT, _Traits > >
 
constexpr __cust_access::_End end
 
constexpr __equal_fn equal
 
constexpr __equal_range_fn equal_range
 
constexpr __fill_fn fill
 
constexpr __fill_n_fn fill_n
 
constexpr __find_fn find
 
constexpr __find_end_fn find_end
 
constexpr __find_first_of_fn find_first_of
 
constexpr __find_if_fn find_if
 
constexpr __find_if_not_fn find_if_not
 
constexpr __for_each_fn for_each
 
constexpr __for_each_n_fn for_each_n
 
template<typename _Tp >
concept forward_range
 
constexpr __generate_fn generate
 
constexpr __generate_n_fn generate_n
 
constexpr __includes_fn includes
 
constexpr __inplace_merge_fn inplace_merge
 
template<typename _Tp >
concept input_range
 
_Bound iota_view< _Winc, _Bound >
 
constexpr __is_heap_fn is_heap
 
constexpr __is_heap_until_fn is_heap_until
 
constexpr __is_partitioned_fn is_partitioned
 
constexpr __is_permutation_fn is_permutation
 
constexpr __is_sorted_fn is_sorted
 
constexpr __is_sorted_until_fn is_sorted_until
 
constexpr __cust_imove::_IMove iter_move
 
constexpr __cust_iswap::_IterSwap iter_swap
 
constexpr __lexicographical_compare_fn lexicographical_compare
 
constexpr __lower_bound_fn lower_bound
 
constexpr __make_heap_fn make_heap
 
constexpr __max_fn max
 
constexpr __max_element_fn max_element
 
constexpr __merge_fn merge
 
constexpr __min_fn min
 
constexpr __min_element_fn min_element
 
constexpr __minmax_fn minmax
 
constexpr __minmax_element_fn minmax_element
 
constexpr __mismatch_fn mismatch
 
constexpr __move_fn move
 
constexpr __move_backward_fn move_backward
 
 move_backward_result< _Iter, _Out >
 
 move_result< _Iter, _Out >
 
constexpr __next_fn next
 
constexpr __next_permutation_fn next_permutation
 
constexpr __none_of_fn none_of
 
constexpr __nth_element_fn nth_element
 
template<typename _Range , typename _Tp >
concept output_range
 
constexpr __partial_sort_fn partial_sort
 
constexpr __partial_sort_copy_fn partial_sort_copy
 
constexpr __partition_fn partition
 
constexpr __partition_copy_fn partition_copy
 
constexpr __partition_point_fn partition_point
 
constexpr __pop_heap_fn pop_heap
 
constexpr __prev_fn prev
 
constexpr __prev_permutation_fn prev_permutation
 
constexpr __push_heap_fn push_heap
 
template<typename _Tp >
concept random_access_range
 
template<typename _Tp >
concept range
 
constexpr __cust_access::_RBegin rbegin
 
constexpr __remove_fn remove
 
constexpr __remove_copy_fn remove_copy
 
constexpr __remove_copy_if_fn remove_copy_if
 
constexpr __remove_if_fn remove_if
 
constexpr __cust_access::_REnd rend
 
constexpr __replace_fn replace
 
constexpr __replace_copy_fn replace_copy
 
constexpr __replace_copy_if_fn replace_copy_if
 
constexpr __replace_if_fn replace_if
 
constexpr __reverse_fn reverse
 
constexpr __reverse_copy_fn reverse_copy
 
constexpr __rotate_fn rotate
 
constexpr __rotate_copy_fn rotate_copy
 
constexpr __sample_fn sample
 
constexpr __search_fn search
 
constexpr __search_n_fn search_n
 
constexpr __set_difference_fn set_difference
 
constexpr __set_intersection_fn set_intersection
 
constexpr __set_symmetric_difference_fn set_symmetric_difference
 
constexpr __set_union_fn set_union
 
constexpr __shuffle_fn shuffle
 
constexpr __cust_access::_Size size
 
template<typename _Tp >
concept sized_range
 
constexpr __sort_fn sort
 
constexpr __sort_heap_fn sort_heap
 
constexpr __cust_access::_SSize ssize
 
constexpr __stable_partition_fn stable_partition
 
constexpr __stable_sort_fn stable_sort
 
constexpr __cust_swap::_Swap swap
 
constexpr __swap_ranges_fn swap_ranges
 
constexpr __transform_fn transform
 
constexpr __unique_fn unique
 
constexpr __unique_copy_fn unique_copy
 
constexpr __upper_bound_fn upper_bound
 
template<typename _Tp >
concept view
 
template<typename _Tp >
concept viewable_range