libstdc++
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.