Standard library header <experimental/ranges/range> - cppreference.com (original) (raw)

This header is part of the ranges library.

[edit] Range concepts

Defined in namespace std::experimental::ranges
Range specifies that a type is a range, that is, it provides a begin iterator and an end sentinel (concept) [edit]
SizedRange specifies that a range knows its size in constant time (concept) [edit]
View specifies that a range is a view, that is, it has constant time copy/move/assignment (concept) [edit]
BoundedRange specifies that a range has identical iterator and sentinel types (concept) [edit]
InputRange specifies a range whose iterator type satisfies InputIterator (concept) [edit]
OutputRange specifies a range whose iterator type satisfies OutputIterator (concept) [edit]
ForwardRange specifies a range whose iterator type satisfies ForwardIterator (concept) [edit]
BidirectionalRange specifies a range whose iterator type satisfies BidirectionalIterator (concept) [edit]
RandomAccessRange specifies a range whose iterator type satisfies RandomAccessIterator (concept) [edit]

[edit] Range access

Defined in namespace std::experimental::ranges

[edit] Range primitives

Defined in namespace std::experimental::ranges

[edit] Synopsis

#include <experimental/ranges/iterator>   namespace std { namespace experimental { namespace ranges { inline namespace v1 {   namespace { constexpr /* unspecified / begin = / unspecified /; constexpr / unspecified / end = / unspecified /; constexpr / unspecified / cbegin = / unspecified /; constexpr / unspecified / cend = / unspecified /; constexpr / unspecified / rbegin = / unspecified /; constexpr / unspecified / rend = / unspecified /; constexpr / unspecified / crbegin = / unspecified /; constexpr / unspecified / crend = / unspecified /; }   namespace { constexpr / unspecified / size = / unspecified /; constexpr / unspecified / empty = / unspecified /; constexpr / unspecified / data = / unspecified /; constexpr / unspecified / cdata = / unspecified /; }   template using iterator_t = decltype(ranges::begin(declval<T&>()));   template using sentinel_t = decltype(ranges::end(declval<T&>()));   template constexpr bool disable_sized_range = false;   template struct enable_view { };   struct view_base { };   template concept bool Range = / see definition /;   template concept bool SizedRange = / see definition /;   template concept bool View = / see definition /;   template concept bool BoundedRange = / see definition /;   template concept bool InputRange = / see definition /;   template <class R, class T> concept bool OutputRange = / see definition /;   template concept bool ForwardRange = / see definition /;   template concept bool BidirectionalRange = / see definition /;   template concept bool RandomAccessRange = / see definition */;   }}}}