|
|
Range primitives | |||||||
|
Range concepts | |||||||||||||||||||
|
Range factories | |||||||||
|
Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Helper items | |||||||||||||||||
|
Defined in header <ranges> | ||
template<ranges::range R> using borrowed_iterator_t=/* see below */; | (1) | (since C++20) |
template<ranges::range R> using borrowed_subrange_t=/* see below */; | (2) | (since C++20) |
R
modelsborrowed_range
,std::ranges::dangling otherwise.These two alias templates are used by someconstrained algorithms to avoid returning potentially dangling iterators or views.
borrowed_iterator_t |
---|
template< std::ranges::range R>using borrowed_iterator_t=std::conditional_t<std::ranges::borrowed_range<R>, std::ranges::iterator_t<R>, std::ranges::dangling>; |
borrowed_subrange_t |
template< std::ranges::range R>using borrowed_subrange_t=std::conditional_t<std::ranges::borrowed_range<R>, std::ranges::subrange<std::ranges::iterator_t<R>>, std::ranges::dangling>; |
(C++20) | a placeholder type indicating that an iterator or asubrange should not be returned since it would be dangling(class)[edit] |