libstdc++
ranges File Reference

Go to the source code of this file.

Classes

class  std::ranges::empty_view< _Tp >
 
class  std::ranges::single_view< _Tp >
 

Namespaces

namespace  std
 

Typedefs

template<typename _Fn , typename... _Iters>
using std::ranges::__detail::__func_handle_t = decltype(__func_handle::__select< _Fn, _Iters... >())
 
template<bool _Const, typename _Tp >
using std::ranges::__detail::__maybe_const_t = __conditional_t< _Const, const _Tp, _Tp >
 
template<bool _Present, typename _Tp , int _Disc = 0>
using std::ranges::__detail::__maybe_present_t = __conditional_t< _Present, _Tp, _Absent< _Tp, _Disc > >
 
template<viewable_range _Range>
using std::ranges::views::all_t = decltype(all(std::declval< _Range >()))
 
template<typename _Val >
using std::ranges::istream_view = basic_istream_view< _Val, char >
 
template<typename _Range >
using std::ranges::keys_view = elements_view< _Range, 0 >
 
template<typename _Range >
using std::ranges::values_view = elements_view< _Range, 1 >
 
template<typename _Val >
using std::ranges::wistream_view = basic_istream_view< _Val, wchar_t >
 

Functions

template<typename _Tp >
constexpr _Tp & std::ranges::__detail::__as_lvalue (_Tp &&__t)
 
template<typename _Range >
constexpr auto std::ranges::views::__detail::__drop_of_repeat_view (_Range &&, range_difference_t< _Range >)
 
template<typename _Tp , typename _Up >
requires (!same_as<_Tp, _RangeAdaptorClosure<_Up>>)
void std::ranges::views::__adaptor::__is_range_adaptor_closure_fn (const _Tp &, const _RangeAdaptorClosure< _Up > &)
 
template<typename _Fn , typename... _Iters>
consteval auto std::ranges::__detail::__func_handle::__select ()
 
template<typename _Range >
constexpr auto std::ranges::views::__detail::__take_of_repeat_view (_Range &&, range_difference_t< _Range >)
 
template<typename _Range >
 std::ranges::common_view (_Range &&) -> common_view< views::all_t< _Range > >
 
template<typename _Range >
 std::ranges::drop_view (_Range &&, range_difference_t< _Range >) -> drop_view< views::all_t< _Range > >
 
template<typename _Range , typename _Pred >
 std::ranges::drop_while_view (_Range &&, _Pred) -> drop_while_view< views::all_t< _Range >, _Pred >
 
template<typename _Range , typename _Pred >
 std::ranges::filter_view (_Range &&, _Pred) -> filter_view< views::all_t< _Range >, _Pred >
 
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>))
 std::ranges::iota_view (_Winc, _Bound) -> iota_view< _Winc, _Bound >
 
template<typename _Range >
 std::ranges::join_view (_Range &&) -> join_view< views::all_t< _Range > >
 
template<typename _Range , typename _Pattern >
 std::ranges::lazy_split_view (_Range &&, _Pattern &&) -> lazy_split_view< views::all_t< _Range >, views::all_t< _Pattern > >
 
template<input_range _Range>
 std::ranges::lazy_split_view (_Range &&, range_value_t< _Range >) -> lazy_split_view< views::all_t< _Range >, single_view< range_value_t< _Range > > >
 
template<typename _Lhs , typename _Rhs >
requires __is_range_adaptor_closure<_Lhs> && __is_range_adaptor_closure<_Rhs>
constexpr auto std::ranges::views::__adaptor::operator| (_Lhs &&__lhs, _Rhs &&__rhs)
 
template<typename _Self , typename _Range >
requires __is_range_adaptor_closure<_Self> && __adaptor_invocable<_Self, _Range>
constexpr auto std::ranges::views::__adaptor::operator| (_Range &&__r, _Self &&__self)
 
template<typename _Range >
 std::ranges::ref_view (_Range &) -> ref_view< _Range >
 
template<typename _Range >
 std::ranges::reverse_view (_Range &&) -> reverse_view< views::all_t< _Range > >
 
template<typename _Tp >
 std::ranges::single_view (_Tp) -> single_view< _Tp >
 
template<typename _Range , typename _Pattern >
 std::ranges::split_view (_Range &&, _Pattern &&) -> split_view< views::all_t< _Range >, views::all_t< _Pattern > >
 
template<forward_range _Range>
 std::ranges::split_view (_Range &&, range_value_t< _Range >) -> split_view< views::all_t< _Range >, single_view< range_value_t< _Range > > >
 
template<typename _Range >
 std::ranges::take_view (_Range &&, range_difference_t< _Range >) -> take_view< views::all_t< _Range > >
 
template<typename _Range , typename _Pred >
 std::ranges::take_while_view (_Range &&, _Pred) -> take_while_view< views::all_t< _Range >, _Pred >
 
template<typename _Range , typename _Fp >
 std::ranges::transform_view (_Range &&, _Fp) -> transform_view< views::all_t< _Range >, _Fp >
 

Variables

template<typename _Range >
constexpr bool std::ranges::views::__detail::__is_basic_string_view
 
template<typename _CharT , typename _Traits >
constexpr bool std::ranges::views::__detail::__is_basic_string_view< basic_string_view< _CharT, _Traits > >
 
template<typename _Range >
constexpr bool std::ranges::views::__detail::__is_empty_view
 
template<typename _Tp >
constexpr bool std::ranges::views::__detail::__is_empty_view< empty_view< _Tp > >
 
template<typename _Range >
constexpr bool std::ranges::views::__detail::__is_iota_view
 
template<typename _Winc , typename _Bound >
constexpr bool std::ranges::views::__detail::__is_iota_view< iota_view< _Winc, _Bound > >
 
template<typename _Range >
constexpr bool std::ranges::views::__detail::__is_repeat_view
 
template<typename >
constexpr bool std::ranges::views::__detail::__is_reverse_view
 
template<typename _Vp >
constexpr bool std::ranges::views::__detail::__is_reverse_view< reverse_view< _Vp > >
 
template<typename >
constexpr bool std::ranges::views::__detail::__is_reversible_subrange
 
template<typename _Iter , subrange_kind _Kind>
constexpr bool std::ranges::views::__detail::__is_reversible_subrange< subrange< reverse_iterator< _Iter >, reverse_iterator< _Iter >, _Kind > >
 
constexpr _All std::ranges::views::all
 
constexpr _Common std::ranges::views::common
 
constexpr _Counted std::ranges::views::counted
 
constexpr _Drop std::ranges::views::drop
 
constexpr _DropWhile std::ranges::views::drop_while
 
template<size_t _Nm>
constexpr _Elements< _Nm > std::ranges::views::elements
 
template<typename _Tp >
constexpr empty_view< _Tp > std::ranges::views::empty
 
template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< common_view< _Tp > >
 
template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< drop_view< _Tp > >
 
template<typename _Tp , typename _Pred >
constexpr bool std::ranges::enable_borrowed_range< drop_while_view< _Tp, _Pred > >
 
template<typename _Tp , size_t _Nm>
constexpr bool std::ranges::enable_borrowed_range< elements_view< _Tp, _Nm > >
 
template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< empty_view< _Tp > >
 
template<typename _Winc , typename _Bound >
constexpr bool std::ranges::enable_borrowed_range< iota_view< _Winc, _Bound > >
 
template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< owning_view< _Tp > >
 
template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< ref_view< _Tp > >
 
template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< reverse_view< _Tp > >
 
template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< take_view< _Tp > >
 
constexpr _Filter std::ranges::views::filter
 
constexpr _Iota std::ranges::views::iota
 
constexpr _Join std::ranges::views::join
 
constexpr auto std::ranges::views::keys
 
constexpr _LazySplit std::ranges::views::lazy_split
 
constexpr _Reverse std::ranges::views::reverse
 
constexpr _Single std::ranges::views::single
 
constexpr _Split std::ranges::views::split
 
constexpr _Take std::ranges::views::take
 
constexpr _TakeWhile std::ranges::views::take_while
 
constexpr _Transform std::ranges::views::transform
 
constexpr auto std::ranges::views::values
 

Detailed Description

This is a Standard C++ Library header.

Definition in file ranges.

Macro Definition Documentation

◆ __glibcxx_want_algorithm_default_value_type

#define __glibcxx_want_algorithm_default_value_type

Definition at line 58 of file ranges.

◆ __glibcxx_want_ranges

#define __glibcxx_want_ranges

Definition at line 59 of file ranges.

◆ __glibcxx_want_ranges_as_const

#define __glibcxx_want_ranges_as_const

Definition at line 60 of file ranges.

◆ __glibcxx_want_ranges_as_rvalue

#define __glibcxx_want_ranges_as_rvalue

Definition at line 61 of file ranges.

◆ __glibcxx_want_ranges_cache_latest

#define __glibcxx_want_ranges_cache_latest

Definition at line 62 of file ranges.

◆ __glibcxx_want_ranges_cartesian_product

#define __glibcxx_want_ranges_cartesian_product

Definition at line 63 of file ranges.

◆ __glibcxx_want_ranges_chunk

#define __glibcxx_want_ranges_chunk

Definition at line 65 of file ranges.

◆ __glibcxx_want_ranges_chunk_by

#define __glibcxx_want_ranges_chunk_by

Definition at line 66 of file ranges.

◆ __glibcxx_want_ranges_concat

#define __glibcxx_want_ranges_concat

Definition at line 64 of file ranges.

◆ __glibcxx_want_ranges_enumerate

#define __glibcxx_want_ranges_enumerate

Definition at line 67 of file ranges.

◆ __glibcxx_want_ranges_indices

#define __glibcxx_want_ranges_indices

Definition at line 68 of file ranges.

◆ __glibcxx_want_ranges_join_with

#define __glibcxx_want_ranges_join_with

Definition at line 69 of file ranges.

◆ __glibcxx_want_ranges_repeat

#define __glibcxx_want_ranges_repeat

Definition at line 70 of file ranges.

◆ __glibcxx_want_ranges_slide

#define __glibcxx_want_ranges_slide

Definition at line 71 of file ranges.

◆ __glibcxx_want_ranges_stride

#define __glibcxx_want_ranges_stride

Definition at line 72 of file ranges.

◆ __glibcxx_want_ranges_to_container

#define __glibcxx_want_ranges_to_container

Definition at line 73 of file ranges.

◆ __glibcxx_want_ranges_to_input

#define __glibcxx_want_ranges_to_input

Definition at line 74 of file ranges.

◆ __glibcxx_want_ranges_zip

#define __glibcxx_want_ranges_zip

Definition at line 75 of file ranges.

Typedef Documentation

◆ __func_handle_t

template<typename _Fn , typename... _Iters>
using std::ranges::__detail::__func_handle_t = typedef decltype(__func_handle::__select<_Fn, _Iters...>())

Definition at line 422 of file ranges.

◆ __maybe_const_t

template<bool _Const, typename _Tp >
using std::ranges::__detail::__maybe_const_t = typedef __conditional_t<_Const, const _Tp, _Tp>

Definition at line 1070 of file ranges.

◆ __maybe_present_t

template<bool _Present, typename _Tp , int _Disc = 0>
using std::ranges::__detail::__maybe_present_t = typedef __conditional_t<_Present, _Tp, _Absent<_Tp, _Disc> >

Definition at line 1066 of file ranges.

◆ all_t

template<viewable_range _Range>
using std::ranges::views::all_t = typedef decltype(all(std::declval<_Range>()))

Definition at line 1539 of file ranges.

◆ istream_view

template<typename _Val >
using std::ranges::istream_view = typedef basic_istream_view<_Val, char>

Definition at line 1022 of file ranges.

◆ keys_view

template<typename _Range >
using std::ranges::keys_view = typedef elements_view<_Range, 0>

Definition at line 4697 of file ranges.

◆ values_view

template<typename _Range >
using std::ranges::values_view = typedef elements_view<_Range, 1>

Definition at line 4700 of file ranges.

◆ wistream_view

template<typename _Val >
using std::ranges::wistream_view = typedef basic_istream_view<_Val, wchar_t>

Definition at line 1025 of file ranges.

Function Documentation

◆ __as_lvalue()

template<typename _Tp >
constexpr _Tp & std::ranges::__detail::__as_lvalue ( _Tp &&  __t)
constexpr

Definition at line 2969 of file ranges.

◆ __select()

template<typename _Fn , typename... _Iters>
consteval auto std::ranges::__detail::__func_handle::__select ( )

Definition at line 404 of file ranges.

◆ operator|() [1/2]

template<typename _Lhs , typename _Rhs >
requires __is_range_adaptor_closure<_Lhs> && __is_range_adaptor_closure<_Rhs>
constexpr auto std::ranges::views::__adaptor::operator| ( _Lhs &&  __lhs,
_Rhs &&  __rhs 
)
constexpr

Definition at line 1130 of file ranges.

◆ operator|() [2/2]

template<typename _Self , typename _Range >
requires __is_range_adaptor_closure<_Self> && __adaptor_invocable<_Self, _Range>
constexpr auto std::ranges::views::__adaptor::operator| ( _Range &&  __r,
_Self &&  __self 
)
constexpr

Definition at line 1121 of file ranges.

Variable Documentation

◆ __is_basic_string_view

template<typename _Range >
constexpr bool std::ranges::views::__detail::__is_basic_string_view
inlineconstexpr

Definition at line 2516 of file ranges.

◆ __is_basic_string_view< basic_string_view< _CharT, _Traits > >

template<typename _CharT , typename _Traits >
constexpr bool std::ranges::views::__detail::__is_basic_string_view< basic_string_view< _CharT, _Traits > >
inlineconstexpr

Definition at line 2519 of file ranges.

◆ __is_empty_view

template<typename _Range >
constexpr bool std::ranges::views::__detail::__is_empty_view
inlineconstexpr

Definition at line 2510 of file ranges.

◆ __is_empty_view< empty_view< _Tp > >

template<typename _Tp >
constexpr bool std::ranges::views::__detail::__is_empty_view< empty_view< _Tp > >
inlineconstexpr

Definition at line 2513 of file ranges.

◆ __is_iota_view

template<typename _Range >
constexpr bool std::ranges::views::__detail::__is_iota_view
inlineconstexpr

Definition at line 2525 of file ranges.

◆ __is_iota_view< iota_view< _Winc, _Bound > >

template<typename _Winc , typename _Bound >
constexpr bool std::ranges::views::__detail::__is_iota_view< iota_view< _Winc, _Bound > >
inlineconstexpr

Definition at line 2528 of file ranges.

◆ __is_repeat_view

template<typename _Range >
constexpr bool std::ranges::views::__detail::__is_repeat_view
inlineconstexpr

Definition at line 2531 of file ranges.

◆ __is_reverse_view

template<typename >
constexpr bool std::ranges::views::__detail::__is_reverse_view
inlineconstexpr

Definition at line 4291 of file ranges.

◆ __is_reverse_view< reverse_view< _Vp > >

template<typename _Vp >
constexpr bool std::ranges::views::__detail::__is_reverse_view< reverse_view< _Vp > >
inlineconstexpr

Definition at line 4294 of file ranges.

◆ __is_reversible_subrange

template<typename >
constexpr bool std::ranges::views::__detail::__is_reversible_subrange
inlineconstexpr

Definition at line 4282 of file ranges.

◆ __is_reversible_subrange< subrange< reverse_iterator< _Iter >, reverse_iterator< _Iter >, _Kind > >

template<typename _Iter , subrange_kind _Kind>
constexpr bool std::ranges::views::__detail::__is_reversible_subrange< subrange< reverse_iterator< _Iter >, reverse_iterator< _Iter >, _Kind > >
inlineconstexpr

Definition at line 4285 of file ranges.

◆ all

constexpr _All std::ranges::views::all
inlineconstexpr

Definition at line 1536 of file ranges.

◆ common

constexpr _Common std::ranges::views::common
inlineconstexpr

Definition at line 4197 of file ranges.

◆ counted

constexpr _Counted std::ranges::views::counted
inlineconstexpr

Definition at line 4083 of file ranges.

◆ drop

constexpr _Drop std::ranges::views::drop
inlineconstexpr

Definition at line 2875 of file ranges.

◆ drop_while

constexpr _DropWhile std::ranges::views::drop_while
inlineconstexpr

Definition at line 2962 of file ranges.

◆ elements

template<size_t _Nm>
constexpr _Elements<_Nm> std::ranges::views::elements
inlineconstexpr

Definition at line 4726 of file ranges.

◆ empty

template<typename _Tp >
constexpr empty_view<_Tp> std::ranges::views::empty
inlineconstexpr

Definition at line 882 of file ranges.

◆ enable_borrowed_range< common_view< _Tp > >

template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< common_view< _Tp > >
inlineconstexpr

Definition at line 4164 of file ranges.

◆ enable_borrowed_range< drop_view< _Tp > >

template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< drop_view< _Tp > >
inlineconstexpr

Definition at line 2806 of file ranges.

◆ enable_borrowed_range< drop_while_view< _Tp, _Pred > >

template<typename _Tp , typename _Pred >
constexpr bool std::ranges::enable_borrowed_range< drop_while_view< _Tp, _Pred > >
inlineconstexpr

Definition at line 2934 of file ranges.

◆ enable_borrowed_range< elements_view< _Tp, _Nm > >

template<typename _Tp , size_t _Nm>
constexpr bool std::ranges::enable_borrowed_range< elements_view< _Tp, _Nm > >
inlineconstexpr

Definition at line 4691 of file ranges.

◆ enable_borrowed_range< empty_view< _Tp > >

template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< empty_view< _Tp > >
inlineconstexpr

Definition at line 118 of file ranges.

◆ enable_borrowed_range< iota_view< _Winc, _Bound > >

template<typename _Winc , typename _Bound >
constexpr bool std::ranges::enable_borrowed_range< iota_view< _Winc, _Bound > >
inlineconstexpr

Definition at line 876 of file ranges.

◆ enable_borrowed_range< owning_view< _Tp > >

template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< owning_view< _Tp > >
inlineconstexpr

Definition at line 1489 of file ranges.

◆ enable_borrowed_range< ref_view< _Tp > >

template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< ref_view< _Tp > >
inlineconstexpr

Definition at line 1409 of file ranges.

◆ enable_borrowed_range< reverse_view< _Tp > >

template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< reverse_view< _Tp > >
inlineconstexpr

Definition at line 4274 of file ranges.

◆ enable_borrowed_range< take_view< _Tp > >

template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< take_view< _Tp > >
inlineconstexpr

Definition at line 2502 of file ranges.

◆ filter

constexpr _Filter std::ranges::views::filter
inlineconstexpr

Definition at line 1954 of file ranges.

◆ iota

constexpr _Iota std::ranges::views::iota
inlineconstexpr

Definition at line 922 of file ranges.

◆ join

constexpr _Join std::ranges::views::join
inlineconstexpr

Definition at line 3395 of file ranges.

◆ keys

constexpr auto std::ranges::views::keys
inlineconstexpr

Definition at line 4727 of file ranges.

◆ lazy_split

constexpr _LazySplit std::ranges::views::lazy_split
inlineconstexpr

Definition at line 3860 of file ranges.

◆ reverse

constexpr _Reverse std::ranges::views::reverse
inlineconstexpr

Definition at line 4334 of file ranges.

◆ single

constexpr _Single std::ranges::views::single
inlineconstexpr

Definition at line 900 of file ranges.

◆ split

constexpr _Split std::ranges::views::split
inlineconstexpr

Definition at line 4062 of file ranges.

◆ take

constexpr _Take std::ranges::views::take
inlineconstexpr

Definition at line 2591 of file ranges.

◆ take_while

constexpr _TakeWhile std::ranges::views::take_while
inlineconstexpr

Definition at line 2713 of file ranges.

◆ transform

constexpr _Transform std::ranges::views::transform
inlineconstexpr

Definition at line 2348 of file ranges.

◆ values

constexpr auto std::ranges::views::values
inlineconstexpr

Definition at line 4728 of file ranges.