Standard library header <experimental/ranges/range>
From cppreference.net
<
cpp
|
header
|
experimental
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 */; }}}}