Namespaces
Variants

Standard library header <experimental/ranges/range>

From cppreference.net
Standard library headers

Dieser Header ist Teil der ranges -Bibliothek.

Inhaltsverzeichnis

Bereichskonzepte

Definiert im Namespace std::experimental::ranges
spezifiziert, dass ein Typ ein Range ist, d.h. es stellt einen begin Iterator und einen end Sentinel bereit
(Konzept)
spezifiziert, dass ein Range seine Größe in konstanter Zeit kennt
(Konzept)
spezifiziert, dass ein Range eine View ist, d.h. es hat konstante Zeit für Kopieren/Verschieben/Zuweisen
(Konzept)
spezifiziert, dass ein Range identische Iterator- und Sentinel-Typen hat
(Konzept)
spezifiziert einen Range, dessen Iterator-Typ InputIterator erfüllt
(Konzept)
spezifiziert einen Range, dessen Iterator-Typ OutputIterator erfüllt
(Konzept)
spezifiziert einen Range, dessen Iterator-Typ ForwardIterator erfüllt
(Konzept)
spezifiziert einen Range, dessen Iterator-Typ BidirectionalIterator erfüllt
(Konzept)
spezifiziert einen Range, dessen Iterator-Typ RandomAccessIterator erfüllt
(Konzept)

Bereichszugriff

Definiert im Namespace std::experimental::ranges
gibt einen Iterator zum Anfang eines Bereichs zurück
(Anpassungspunktobjekt)
gibt einen Iterator zum Ende eines Bereichs zurück
(Anpassungspunktobjekt)
gibt einen Reverse-Iterator zu einem Bereich zurück
(Anpassungspunktobjekt)
gibt einen Reverse-End-Iterator zu einem Bereich zurück
(Anpassungspunktobjekt)

Bereichsprimitive

Definiert im Namespace std::experimental::ranges
ermittelt die Größe eines Ranges, dessen Größe in konstanter Zeit berechnet werden kann
(Customization Point Object)
prüft, ob ein Range leer ist
(Customization Point Object)
erhält einen Zeiger auf den Anfang eines zusammenhängenden Ranges
(Customization Point Object)
ermittelt die Iterator- und Sentinel-Typen eines Ranges
(Alias-Template)

Übersicht

#include <experimental/ranges/iterator>
namespace std { namespace experimental { namespace ranges { inline namespace v1 {
namespace {
  constexpr /* nicht spezifiziert */ begin = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ end = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ cbegin = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ cend = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ rbegin = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ rend = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ crbegin = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ crend = /* nicht spezifiziert */;
}
namespace {
  constexpr /* nicht spezifiziert */ size = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ empty = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ data = /* nicht spezifiziert */;
  constexpr /* nicht spezifiziert */ cdata = /* nicht spezifiziert */;
}
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 = /* siehe Definition */;
template <class T>
concept bool SizedRange = /* siehe Definition */;
template <class T>
concept bool View = /* siehe Definition */;
template <class T>
concept bool BoundedRange = /* siehe Definition */;
template <class T>
concept bool InputRange = /* siehe Definition */;
template <class R, class T>
concept bool OutputRange = /* siehe Definition */;
template <class T>
concept bool ForwardRange = /* siehe Definition */;
template <class T>
concept bool BidirectionalRange = /* siehe Definition */;
template <class T>
concept bool RandomAccessRange = /* siehe Definition */;
}}}}