ranges_util.h File Reference

Go to the source code of this file.

## Classes

class | std::ranges::view_interface< _Derived >

## Namespaces

| std

## Typedefs

template<range _Range>
using | std::ranges::borrowed_subrange_t = __conditional_t< borrowed_range< _Range >, subrange< iterator_t< _Range > >, dangling >
template<typename _Iter1 , typename _Iter2 >
using | std::ranges::mismatch_result = in_in_result< _Iter1, _Iter2 >

## Enumerations

enum class | subrange_kind : bool { unsized , sized }

## Functions

template<size_t _Num, class _It , class _Sent , subrange_kind _Kind>
| std::ranges::requires (_Num< 2) const expr auto get(const subrange< _It
template<input_or_output_iterator _It, sentinel_for< _It > _Sent>
requires(_Kind==subrange_kind::sized||!sized_sentinel_for< _Sent, _It >) class subrange | std::ranges::subrange (_It, _Sent) -> subrange< _It, _Sent >
template<input_or_output_iterator _It, sentinel_for< _It > _Sent>
| std::ranges::subrange (_It, _Sent, __detail::__make_unsigned_like_t< iter_difference_t< _It >>) -> subrange< _It, _Sent, subrange_kind::sized >
template<borrowed_range _Rng>
| std::ranges::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>
| std::ranges::subrange (_Rng &&, __detail::__make_unsigned_like_t< range_difference_t< _Rng >>) -> subrange< iterator_t< _Rng >, sentinel_t< _Rng >, subrange_kind::sized >

## Variables

template<typename _From , typename _To >
concept | std::ranges::__detail::__convertible_to_non_slicing
template<typename _Tp , typename _Up >
concept | std::ranges::__detail::__different_from
template<typename _It >
concept | std::ranges::__detail::__has_arrow
template<typename _Tp >
concept | std::ranges::__detail::__pair_like
template<typename _Tp , typename _Up , typename _Vp >
concept | std::ranges::__detail::__pair_like_convertible_from
_Kind & | std::ranges::__r
template<typename _Range >
concept | std::ranges::__detail::__simple_view
template<typename _From , typename _To >
concept | std::ranges::__detail::__uses_nonqualification_pointer_conversion
| std::ranges::_Sent
template<typename _It , typename _Sent , subrange_kind _Kind>
constexpr bool | std::ranges::enable_borrowed_range< subrange< _It, _Sent, _Kind > >
constexpr __cust_access::_End | std::ranges::end
constexpr __find_fn | std::ranges::find
constexpr __find_if_fn | std::ranges::find_if
constexpr __find_if_not_fn | std::ranges::find_if_not
constexpr __mismatch_fn | std::ranges::mismatch
constexpr __search_fn | std::ranges::search

## 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_util.h.

## Function Documentation

## subrange()

template<input_or_output_iterator _It, sentinel_for< _It > _Sent>

requires (_Kind == subrange_kind::sized || !sized_sentinel_for<_Sent, _It>) class subrange std::ranges::subrange | ( | _It | ,
|  | _Sent |
| ) |  | -> subrange< _It, _Sent >

The ranges::subrange class template.