Standard library header <experimental/ranges/range>
From cppreference.net
<
cpp
|
header
|
experimental
Este encabezado es parte de la biblioteca ranges .
Contenidos |
Conceptos de rango
|
Definido en el espacio de nombres
std::experimental::ranges
|
|
especifica que un tipo es un rango, es decir, proporciona un
iterador
begin
y un centinela
end
(concepto) |
|
|
especifica que un rango conoce su tamaño en tiempo constante
(concepto) |
|
|
especifica que un rango es una vista, es decir, tiene operaciones de copia/movimiento/asignación en tiempo constante
(concepto) |
|
|
especifica que un rango tiene tipos de iterador y centinela idénticos
(concepto) |
|
especifica un rango cuyo tipo de iterador satisface
InputIterator
(concepto) |
|
especifica un rango cuyo tipo de iterador satisface
OutputIterator
(concepto) |
|
especifica un rango cuyo tipo de iterador satisface
ForwardIterator
(concepto) |
|
especifica un rango cuyo tipo de iterador satisface
BidirectionalIterator
(concepto) |
|
especifica un rango cuyo tipo de iterador satisface
RandomAccessIterator
(concepto) |
|
Acceso por rango
|
Definido en el espacio de nombres
std::experimental::ranges
|
|
|
devuelve un iterador al inicio de un rango
(objeto de punto de personalización) |
|
|
devuelve un iterador al final de un rango
(objeto de punto de personalización) |
|
|
devuelve un iterador inverso a un rango
(objeto de punto de personalización) |
|
|
devuelve un iterador final inverso a un rango
(objeto de punto de personalización) |
|
Primitivas de rango
|
Definido en el espacio de nombres
std::experimental::ranges
|
|
|
obtiene el tamaño de un rango cuyo tamaño puede calcularse en tiempo constante
(objeto de punto de personalización) |
|
|
verifica si un rango está vacío
(objeto de punto de personalización) |
|
|
obtiene un puntero al inicio de un rango contiguo
(objeto de punto de personalización) |
|
|
obtiene los tipos de iterador y centinela de un rango
(plantilla de alias) |
|
Sinopsis
#include <experimental/ranges/iterator> namespace std { namespace experimental { namespace ranges { inline namespace v1 { namespace { constexpr /* no especificado */ begin = /* no especificado */; constexpr /* no especificado */ end = /* no especificado */; constexpr /* no especificado */ cbegin = /* no especificado */; constexpr /* no especificado */ cend = /* no especificado */; constexpr /* no especificado */ rbegin = /* no especificado */; constexpr /* no especificado */ rend = /* no especificado */; constexpr /* no especificado */ crbegin = /* no especificado */; constexpr /* no especificado */ crend = /* no especificado */; } namespace { constexpr /* no especificado */ size = /* no especificado */; constexpr /* no especificado */ empty = /* no especificado */; constexpr /* no especificado */ data = /* no especificado */; constexpr /* no especificado */ cdata = /* no especificado */; } 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 = /* ver definición */; template <class T> concept bool SizedRange = /* ver definición */; template <class T> concept bool View = /* ver definición */; template <class T> concept bool BoundedRange = /* ver definición */; template <class T> concept bool InputRange = /* ver definición */; template <class R, class T> concept bool OutputRange = /* ver definición */; template <class T> concept bool ForwardRange = /* ver definición */; template <class T> concept bool BidirectionalRange = /* ver definición */; template <class T> concept bool RandomAccessRange = /* ver definición */; }}}}