Go to the source code of this file.
|
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 > |
|
|
enum class | subrange_kind : bool { unsized
, sized
} |
|
|
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 > |
|
|
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 |
|
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.
◆ 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.