| ||||||||||||||||||||||
| Range primitives | |||||||||||||||||
|
| ||||||||||||||||
| Range concepts | |||||||||||||||||||
| |||||||||||||||||||
| Range factories | |||||||||
| |||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Helper items | |||||||||||||||||
| |||||||||||||||||
Defined in header <ranges> | ||
template<ranges::sized_range R> using range_size_t= decltype(ranges::size(std::declval<R&>())); | (1) | (since C++20) |
template<ranges::range R> using range_difference_t=std::iter_difference_t<ranges::iterator_t<R>>; | (2) | (since C++20) |
template<ranges::range R> using range_value_t=std::iter_value_t<ranges::iterator_t<R>>; | (3) | (since C++20) |
R.R.| R | - | arange type or asized_range type |
(C++20)(C++20)(C++23)(C++20)(C++20)(C++20) | computes the associated types of an iterator (alias template)[edit] |
(C++20)(C++23)(C++20)(C++23) | obtains iterator and sentinel types of a range (alias template)[edit] |
| obtains reference types of a range (alias template)[edit] |