Standard library header <experimental/ranges/range>
From cppreference.net
<
cpp
|
header
|
experimental
Cet en-tête fait partie de la bibliothèque ranges .
Table des matières |
Concepts de plage
|
Défini dans l'espace de noms
std::experimental::ranges
|
|
spécifie qu'un type est une plage, c'est-à-dire qu'il fournit un
begin
itérateur et un
end
sentinelle
(concept) |
|
|
spécifie qu'une plage connaît sa taille en temps constant
(concept) |
|
|
spécifie qu'une plage est une vue, c'est-à-dire qu'elle a une copie/déplacement/assignation en temps constant
(concept) |
|
|
spécifie qu'une plage a des types d'itérateur et de sentinelle identiques
(concept) |
|
spécifie une plage dont le type d'itérateur satisfait
InputIterator
(concept) |
|
spécifie une plage dont le type d'itérateur satisfait
OutputIterator
(concept) |
|
spécifie une plage dont le type d'itérateur satisfait
ForwardIterator
(concept) |
|
spécifie une plage dont le type d'itérateur satisfait
BidirectionalIterator
(concept) |
|
spécifie une plage dont le type d'itérateur satisfait
RandomAccessIterator
(concept) |
|
Accès aux plages
|
Défini dans l'espace de noms
std::experimental::ranges
|
|
|
retourne un itérateur vers le début d'une plage
(objet de point de personnalisation) |
|
|
retourne un itérateur vers la fin d'une plage
(objet de point de personnalisation) |
|
|
retourne un itérateur inverse vers une plage
(objet de point de personnalisation) |
|
|
retourne un itérateur inverse de fin vers une plage
(objet de point de personnalisation) |
|
Primitives de plage
|
Défini dans l'espace de noms
std::experimental::ranges
|
|
|
obtient la taille d'une plage dont la taille peut être calculée en temps constant
(objet de point de personnalisation) |
|
|
vérifie si une plage est vide
(objet de point de personnalisation) |
|
|
obtient un pointeur vers le début d'une plage contiguë
(objet de point de personnalisation) |
|
|
obtient les types d'itérateur et de sentinelle d'une plage
(alias de modèle) |
|
Synopsis
#include <experimental/ranges/iterator> namespace std { namespace experimental { namespace ranges { inline namespace v1 { namespace { constexpr /* non spécifié */ begin = /* non spécifié */; constexpr /* non spécifié */ end = /* non spécifié */; constexpr /* non spécifié */ cbegin = /* non spécifié */; constexpr /* non spécifié */ cend = /* non spécifié */; constexpr /* non spécifié */ rbegin = /* non spécifié */; constexpr /* non spécifié */ rend = /* non spécifié */; constexpr /* non spécifié */ crbegin = /* non spécifié */; constexpr /* non spécifié */ crend = /* non spécifié */; } namespace { constexpr /* non spécifié */ size = /* non spécifié */; constexpr /* non spécifié */ empty = /* non spécifié */; constexpr /* non spécifié */ data = /* non spécifié */; constexpr /* non spécifié */ cdata = /* non spécifié */; } 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 = /* voir définition */; template <class T> concept bool SizedRange = /* voir définition */; template <class T> concept bool View = /* voir définition */; template <class T> concept bool BoundedRange = /* voir définition */; template <class T> concept bool InputRange = /* voir définition */; template <class R, class T> concept bool OutputRange = /* voir définition */; template <class T> concept bool ForwardRange = /* voir définition */; template <class T> concept bool BidirectionalRange = /* voir définition */; template <class T> concept bool RandomAccessRange = /* voir définition */; }}}}