Namespaces
Variants

Standard library header <experimental/ranges/range>

From cppreference.net
Standard library headers

Этот заголовок является частью 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 = /* см. определение */;
}}}}