|
| ||||||||||||||||||||||||||||||||||||||||||||||
| 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] |