Namespaces
Variants

Standard library header <experimental/ranges/range>

From cppreference.net
Standard library headers

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 */;
}}}}