libstdc++
ranges_base.h File Reference

Go to the source code of this file.

Classes

struct  std::ranges::dangling
 
struct  std::ranges::view_base
 

Namespaces

namespace  std
 

Concepts

concept  std::ranges::range
 
concept  std::ranges::borrowed_range
 
concept  std::ranges::sized_range
 
concept  std::ranges::view
 
concept  std::ranges::output_range
 
concept  std::ranges::input_range
 
concept  std::ranges::forward_range
 
concept  std::ranges::bidirectional_range
 
concept  std::ranges::random_access_range
 
concept  std::ranges::contiguous_range
 
concept  std::ranges::common_range
 
concept  std::ranges::viewable_range
 

Macros

#define _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_I, _P)
 

Typedefs

template<typename _Tp >
using std::ranges::__detail::__make_unsigned_like_t = decltype(__detail::__to_unsigned_like(std::declval< _Tp >()))
 
template<range _Range>
using std::ranges::borrowed_iterator_t = __conditional_t< borrowed_range< _Range >, iterator_t< _Range >, dangling >
 
template<typename _Tp >
using std::ranges::iterator_t = std::__detail::__range_iter_t< _Tp >
 
template<range _Range>
using std::ranges::range_common_reference_t = iter_common_reference_t< iterator_t< _Range > >
 
template<range _Range>
using std::ranges::range_difference_t = iter_difference_t< iterator_t< _Range > >
 
template<range _Range>
using std::ranges::range_reference_t = iter_reference_t< iterator_t< _Range > >
 
template<range _Range>
using std::ranges::range_rvalue_reference_t = iter_rvalue_reference_t< iterator_t< _Range > >
 
template<sized_range _Range>
using std::ranges::range_size_t = decltype(ranges::size(std::declval< _Range & >()))
 
template<range _Range>
using std::ranges::range_value_t = iter_value_t< iterator_t< _Range > >
 
template<range _Range>
using std::ranges::sentinel_t = decltype(ranges::end(std::declval< _Range & >()))
 

Functions

template<typename _To , typename _Tp >
constexpr decltype(auto) std::ranges::__access::__as_const (_Tp &__t) noexcept
 
template<typename _Tp , typename _Up >
requires (!same_as<_Tp, view_interface<_Up>>)
void std::ranges::__detail::__is_derived_from_view_interface_fn (const _Tp &, const view_interface< _Up > &)
 
constexpr __max_size_type std::ranges::__detail::__to_unsigned_like (__max_diff_type __t) noexcept
 
constexpr __max_size_type std::ranges::__detail::__to_unsigned_like (__max_size_type __t) noexcept
 
template<integral _Tp>
constexpr auto std::ranges::__detail::__to_unsigned_like (_Tp __t) noexcept
 
void std::ranges::__access::end ()=delete
 
void std::ranges::__access::rbegin ()=delete
 
void std::ranges::__access::rend ()=delete
 
void std::ranges::__access::size ()=delete
 

Variables

template<typename _Tp >
constexpr bool std::ranges::__detail::__is_initializer_list
 
template<typename _Tp >
constexpr bool std::ranges::__detail::__is_initializer_list< initializer_list< _Tp > >
 
constexpr __advance_fn std::ranges::advance
 
constexpr ranges::__access::_Begin std::ranges::begin
 
constexpr ranges::__access::_CBegin std::ranges::cbegin
 
constexpr ranges::__access::_CData std::ranges::cdata
 
constexpr ranges::__access::_CEnd std::ranges::cend
 
constexpr ranges::__access::_CRBegin std::ranges::crbegin
 
constexpr ranges::__access::_CREnd std::ranges::crend
 
constexpr ranges::__access::_Data std::ranges::data
 
template<typename >
constexpr bool std::ranges::disable_sized_range
 
constexpr __distance_fn std::ranges::distance
 
constexpr ranges::__access::_Empty std::ranges::empty
 
template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range
 
template<typename _Tp >
constexpr bool std::ranges::enable_view
 
constexpr ranges::__access::_End std::ranges::end
 
constexpr __next_fn std::ranges::next
 
constexpr __prev_fn std::ranges::prev
 
constexpr ranges::__access::_RBegin std::ranges::rbegin
 
constexpr ranges::__access::_REnd std::ranges::rend
 
constexpr ranges::__access::_Size std::ranges::size
 
constexpr ranges::__access::_SSize std::ranges::ssize
 

Detailed Description

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <ranges>.

Definition in file ranges_base.h.

Macro Definition Documentation

◆ _GLIBCXX26_RANGE_ALGO_DEF_VAL_T

#define _GLIBCXX26_RANGE_ALGO_DEF_VAL_T (   _I,
  _P 
)

Definition at line 54 of file ranges_base.h.

Typedef Documentation

◆ __make_unsigned_like_t

template<typename _Tp >
using std::ranges::__detail::__make_unsigned_like_t = typedef decltype(__detail::__to_unsigned_like(std::declval<_Tp>()))

Definition at line 88 of file ranges_base.h.

◆ borrowed_iterator_t

template<range _Range>
using std::ranges::borrowed_iterator_t = typedef __conditional_t<borrowed_range<_Range>, iterator_t<_Range>, dangling>

Definition at line 1096 of file ranges_base.h.

◆ iterator_t

template<typename _Tp >
using std::ranges::iterator_t = typedef std::__detail::__range_iter_t<_Tp>

Definition at line 522 of file ranges_base.h.

◆ range_common_reference_t

template<range _Range>
using std::ranges::range_common_reference_t = typedef iter_common_reference_t<iterator_t<_Range> >

Definition at line 550 of file ranges_base.h.

◆ range_difference_t

template<range _Range>
using std::ranges::range_difference_t = typedef iter_difference_t<iterator_t<_Range> >

Definition at line 535 of file ranges_base.h.

◆ range_reference_t

template<range _Range>
using std::ranges::range_reference_t = typedef iter_reference_t<iterator_t<_Range> >

Definition at line 541 of file ranges_base.h.

◆ range_rvalue_reference_t

template<range _Range>
using std::ranges::range_rvalue_reference_t = typedef iter_rvalue_reference_t<iterator_t<_Range> >

Definition at line 544 of file ranges_base.h.

◆ range_size_t

template<sized_range _Range>
using std::ranges::range_size_t = typedef decltype(ranges::size(std::declval<_Range&>()))

Definition at line 559 of file ranges_base.h.

◆ range_value_t

template<range _Range>
using std::ranges::range_value_t = typedef iter_value_t<iterator_t<_Range> >

Definition at line 538 of file ranges_base.h.

◆ sentinel_t

template<range _Range>
using std::ranges::sentinel_t = typedef decltype(ranges::end(std::declval<_Range&>()))

Definition at line 525 of file ranges_base.h.

Function Documentation

◆ __as_const()

template<typename _To , typename _Tp >
constexpr decltype(auto) std::ranges::__access::__as_const ( _Tp &  __t)
constexprnoexcept

Definition at line 658 of file ranges_base.h.

◆ __to_unsigned_like() [1/3]

constexpr __max_size_type std::ranges::__detail::__to_unsigned_like ( __max_diff_type  __t)
constexprnoexcept

Definition at line 78 of file ranges_base.h.

◆ __to_unsigned_like() [2/3]

constexpr __max_size_type std::ranges::__detail::__to_unsigned_like ( __max_size_type  __t)
constexprnoexcept

Definition at line 73 of file ranges_base.h.

◆ __to_unsigned_like() [3/3]

template<integral _Tp>
constexpr auto std::ranges::__detail::__to_unsigned_like ( _Tp  __t)
constexprnoexcept

Definition at line 84 of file ranges_base.h.

Variable Documentation

◆ __is_initializer_list

template<typename _Tp >
constexpr bool std::ranges::__detail::__is_initializer_list
inlineconstexpr

Definition at line 827 of file ranges_base.h.

◆ __is_initializer_list< initializer_list< _Tp > >

template<typename _Tp >
constexpr bool std::ranges::__detail::__is_initializer_list< initializer_list< _Tp > >
inlineconstexpr

Definition at line 830 of file ranges_base.h.

◆ advance

constexpr __advance_fn std::ranges::advance
inlineconstexpr

Definition at line 968 of file ranges_base.h.

◆ begin

constexpr ranges::__access::_Begin std::ranges::_Cpo::begin
inlineconstexpr

Definition at line 498 of file ranges_base.h.

◆ cbegin

constexpr ranges::__access::_CBegin std::ranges::_Cpo::cbegin
inlineconstexpr

Definition at line 807 of file ranges_base.h.

◆ cdata

constexpr ranges::__access::_CData std::ranges::_Cpo::cdata
inlineconstexpr

Definition at line 811 of file ranges_base.h.

◆ cend

constexpr ranges::__access::_CEnd std::ranges::_Cpo::cend
inlineconstexpr

Definition at line 808 of file ranges_base.h.

◆ crbegin

constexpr ranges::__access::_CRBegin std::ranges::_Cpo::crbegin
inlineconstexpr

Definition at line 809 of file ranges_base.h.

◆ crend

constexpr ranges::__access::_CREnd std::ranges::_Cpo::crend
inlineconstexpr

Definition at line 810 of file ranges_base.h.

◆ data

constexpr ranges::__access::_Data std::ranges::_Cpo::data
inlineconstexpr

Definition at line 505 of file ranges_base.h.

◆ disable_sized_range

template<typename >
constexpr bool std::ranges::disable_sized_range
inlineconstexpr

Definition at line 64 of file ranges_base.h.

◆ distance

constexpr __distance_fn std::ranges::distance
inlineconstexpr

Definition at line 1008 of file ranges_base.h.

◆ empty

constexpr ranges::__access::_Empty std::ranges::_Cpo::empty
inlineconstexpr

Definition at line 504 of file ranges_base.h.

◆ enable_borrowed_range

template<typename _Tp >
constexpr bool std::ranges::enable_borrowed_range< std::__unicode::_Grapheme_cluster_view< _Range > >
inlineconstexpr

Definition at line 67 of file ranges_base.h.

◆ enable_view

template<typename _Tp >
constexpr bool std::ranges::enable_view
inlineconstexpr

[range.view] The ranges::enable_view boolean.

Definition at line 584 of file ranges_base.h.

◆ end

constexpr ranges::__access::_End std::ranges::_Cpo::end
inlineconstexpr

Definition at line 499 of file ranges_base.h.

◆ next

constexpr __next_fn std::ranges::next
inlineconstexpr

Definition at line 1051 of file ranges_base.h.

◆ prev

constexpr __prev_fn std::ranges::prev
inlineconstexpr

Definition at line 1085 of file ranges_base.h.

◆ rbegin

constexpr ranges::__access::_RBegin std::ranges::_Cpo::rbegin
inlineconstexpr

Definition at line 500 of file ranges_base.h.

◆ rend

constexpr ranges::__access::_REnd std::ranges::_Cpo::rend
inlineconstexpr

Definition at line 501 of file ranges_base.h.

◆ size

constexpr ranges::__access::_Size std::ranges::_Cpo::size
inlineconstexpr

Definition at line 502 of file ranges_base.h.

◆ ssize

constexpr ranges::__access::_SSize std::ranges::_Cpo::ssize
inlineconstexpr

Definition at line 503 of file ranges_base.h.