Standard library header <experimental/ranges/range>
From cppreference.net
<
cpp
|
header
|
experimental
Этот заголовок является частью ranges библиотеки.
Содержание |
Концепции диапазонов
|
Определено в пространстве имен
std::experimental::ranges
|
|
определяет, что тип является диапазоном, то есть предоставляет
begin
итератор и
end
страж
(концепт) |
|
|
определяет, что диапазон знает свой размер за константное время
(концепт) |
|
|
определяет, что диапазон является представлением, то есть имеет константное время копирования/перемещения/присваивания
(концепт) |
|
|
определяет, что диапазон имеет идентичные типы итератора и стража
(концепт) |
|
определяет диапазон, тип итератора которого удовлетворяет
InputIterator
(концепт) |
|
определяет диапазон, тип итератора которого удовлетворяет
OutputIterator
(концепт) |
|
определяет диапазон, тип итератора которого удовлетворяет
ForwardIterator
(концепт) |
|
определяет диапазон, тип итератора которого удовлетворяет
BidirectionalIterator
(концепт) |
|
определяет диапазон, тип итератора которого удовлетворяет
RandomAccessIterator
(концепт) |
|
Доступ к диапазону
|
Определено в пространстве имен
std::experimental::ranges
|
|
|
возвращает итератор на начало диапазона
(объект точки настройки) |
|
|
возвращает итератор на конец диапазона
(объект точки настройки) |
|
|
возвращает обратный итератор на диапазон
(объект точки настройки) |
|
|
возвращает обратный конечный итератор на диапазон
(объект точки настройки) |
|
Примитивы диапазонов
|
Определено в пространстве имен
std::experimental::ranges
|
|
|
получает размер диапазона, размер которого может быть вычислен за постоянное время
(объект точки настройки) |
|
|
проверяет, является ли диапазон пустым
(объект точки настройки) |
|
|
получает указатель на начало непрерывного диапазона
(объект точки настройки) |
|
|
получает типы итератора и сторожа диапазона
(псевдоним шаблона) |
|
Синопсис
#include <experimental/ranges/iterator> namespace std { namespace experimental { namespace ranges { inline namespace v1 { namespace { constexpr /* неопределено */ begin = /* неопределено */; constexpr /* неопределено */ end = /* неопределено */; constexpr /* неопределено */ cbegin = /* неопределено */; constexpr /* неопределено */ cend = /* неопределено */; constexpr /* неопределено */ rbegin = /* неопределено */; constexpr /* неопределено */ rend = /* неопределено */; constexpr /* неопределено */ crbegin = /* неопределено */; constexpr /* неопределено */ crend = /* неопределено */; } namespace { constexpr /* неопределено */ size = /* неопределено */; constexpr /* неопределено */ empty = /* неопределено */; constexpr /* неопределено */ data = /* неопределено */; constexpr /* неопределено */ cdata = /* неопределено */; } template <class T> using iterator_t = decltype(ranges::begin(declval<T&>())); template <class T> using sentinel_t = decltype(ranges::end(declval<T&>())); template <class> constexpr bool disable_sized_range = false; template <class T> struct enable_view { }; struct view_base { }; template <class T> concept bool Range = /* см. определение */; template <class T> concept bool SizedRange = /* см. определение */; template <class T> concept bool View = /* см. определение */; template <class T> concept bool BoundedRange = /* см. определение */; template <class T> concept bool InputRange = /* см. определение */; template <class R, class T> concept bool OutputRange = /* см. определение */; template <class T> concept bool ForwardRange = /* см. определение */; template <class T> concept bool BidirectionalRange = /* см. определение */; template <class T> concept bool RandomAccessRange = /* см. определение */; }}}}