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

## 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_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::__cust_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::__cust_access::end (auto &)=delete
void | std::ranges::__cust_access::end (const auto &)=delete
void | std::ranges::__cust_access::rbegin (auto &)=delete
void | std::ranges::__cust_access::rbegin (const auto &)=delete
void | std::ranges::__cust_access::rend (auto &)=delete
void | std::ranges::__cust_access::rend (const auto &)=delete
void | std::ranges::__cust_access::size (auto &)=delete
void | std::ranges::__cust_access::size (const auto &)=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 __cust_access::_Begin | std::ranges::begin
constexpr __cust_access::_CBegin | std::ranges::cbegin
constexpr __cust_access::_CData | std::ranges::cdata
constexpr __cust_access::_CEnd | std::ranges::cend
constexpr __cust_access::_CRBegin | std::ranges::crbegin
constexpr __cust_access::_CREnd | std::ranges::crend
constexpr __cust_access::_Data | std::ranges::data
template<typename >
constexpr bool | std::ranges::disable_sized_range
constexpr __distance_fn | std::ranges::distance
constexpr __cust_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 __cust_access::_End | std::ranges::end
constexpr __next_fn | std::ranges::next
constexpr __prev_fn | std::ranges::prev
constexpr __cust_access::_RBegin | std::ranges::rbegin
constexpr __cust_access::_REnd | std::ranges::rend
constexpr __cust_access::_Size | std::ranges::size
constexpr __cust_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.

## 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 78 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 952 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 595 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 601 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 607 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 610 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 619 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 604 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 598 of file ranges_base.h.

## Function Documentation

## __as_const()

template<typename _To , typename _Tp >

constexpr decltype(auto) std::ranges::__cust_access::__as_const | ( | _Tp & | __t | ) |

constexpr noexcept

Definition at line 182 of file ranges_base.h.

## __to_unsigned_like() [1/3]

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

constexpr noexcept

Definition at line 59 of file ranges_base.h.

## __to_unsigned_like() [2/3]

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

constexpr noexcept

Definition at line 55 of file ranges_base.h.

## __to_unsigned_like() [3/3]

template<integral _Tp>

constexpr auto std::ranges::__detail::__to_unsigned_like | ( | _Tp | __t | ) |

constexpr noexcept

Definition at line 64 of file ranges_base.h.

## Variable Documentation

## __is_initializer_list

template<typename _Tp >

constexpr bool std::ranges::__detail::__is_initializer_list

inline constexpr

Definition at line 695 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 > >

inline constexpr

Definition at line 698 of file ranges_base.h.

## advance

constexpr __advance_fn std::ranges::advance

inline constexpr

Definition at line 824 of file ranges_base.h.

## begin

constexpr __cust_access::_Begin std::ranges::__cust::begin

inline constexpr

Definition at line 566 of file ranges_base.h.

## cbegin

constexpr __cust_access::_CBegin std::ranges::__cust::cbegin

inline constexpr

Definition at line 568 of file ranges_base.h.

## cdata

constexpr __cust_access::_CData std::ranges::__cust::cdata

inline constexpr

Definition at line 578 of file ranges_base.h.

## cend

constexpr __cust_access::_CEnd std::ranges::__cust::cend

inline constexpr

Definition at line 569 of file ranges_base.h.

## crbegin

constexpr __cust_access::_CRBegin std::ranges::__cust::crbegin

inline constexpr

Definition at line 572 of file ranges_base.h.

## crend

constexpr __cust_access::_CREnd std::ranges::__cust::crend

inline constexpr

Definition at line 573 of file ranges_base.h.

## data

constexpr __cust_access::_Data std::ranges::__cust::data

inline constexpr

Definition at line 577 of file ranges_base.h.

## disable_sized_range

template<typename >

constexpr bool std::ranges::disable_sized_range

inline constexpr

Definition at line 47 of file ranges_base.h.

## distance

constexpr __distance_fn std::ranges::distance

inline constexpr

Definition at line 864 of file ranges_base.h.

## empty

constexpr __cust_access::_Empty std::ranges::__cust::empty

inline constexpr

Definition at line 576 of file ranges_base.h.

## enable_borrowed_range

template<typename _Tp >

constexpr bool std::ranges::enable_borrowed_range

inline constexpr

Definition at line 50 of file ranges_base.h.

## enable_view

template<typename _Tp >

constexpr bool std::ranges::enable_view

inline constexpr

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

Definition at line 644 of file ranges_base.h.

## end

constexpr __cust_access::_End std::ranges::__cust::end

inline constexpr

Definition at line 567 of file ranges_base.h.

## next

constexpr __next_fn std::ranges::next

inline constexpr

Definition at line 907 of file ranges_base.h.

## prev

constexpr __prev_fn std::ranges::prev

inline constexpr

Definition at line 941 of file ranges_base.h.

## rbegin

constexpr __cust_access::_RBegin std::ranges::__cust::rbegin

inline constexpr

Definition at line 570 of file ranges_base.h.

## rend

constexpr __cust_access::_REnd std::ranges::__cust::rend

inline constexpr

Definition at line 571 of file ranges_base.h.

## size

constexpr __cust_access::_Size std::ranges::__cust::size

inline constexpr

Definition at line 574 of file ranges_base.h.

## ssize

constexpr __cust_access::_SSize std::ranges::__cust::ssize

inline constexpr

Definition at line 575 of file ranges_base.h.