Namensräume
Varianten
Aktionen

Standardbibliothek-Header <experimental/ranges/range>

Von cppreference.com
< cpp‎ | header‎ | experimental
 
 
Header der Standardbibliothek
 

Dieser Header ist Teil der ranges Bibliothek.

Inhalt

[bearbeiten] Range-Konzepte

Definiert im Namespace std::experimental::ranges
spezifiziert, dass ein Typ ein Range ist, d. h. er stellt einen begin-Iterator und ein end-Sentinel bereit
(concept) [bearbeiten]
spezifiziert, dass ein Range seine Größe in konstanter Zeit kennt
(concept) [bearbeiten]
spezifiziert, dass ein Range ein View ist, d. h. er hat konstante Zeit für Kopie/Verschiebung/Zuweisung
(concept) [bearbeiten]
spezifiziert, dass ein Range identische Iterator- und Sentinel-Typen hat
(concept) [bearbeiten]
spezifiziert einen Bereich, dessen Iterator-Typ InputIterator erfüllt
(concept) [bearbeiten]
spezifiziert einen Bereich, dessen Iterator-Typ OutputIterator erfüllt
(concept) [bearbeiten]
spezifiziert einen Bereich, dessen Iterator-Typ ForwardIterator erfüllt
(concept) [bearbeiten]
spezifiziert einen Bereich, dessen Iterator-Typ BidirectionalIterator erfüllt
(concept) [bearbeiten]
spezifiziert einen Bereich, dessen Iterator-Typ RandomAccessIterator erfüllt
(concept) [bearbeiten]

[bearbeiten] Range-Zugriff

Definiert im Namespace std::experimental::ranges
gibt einen Iterator zum Anfang eines Ranges zurück
(customization point object)[bearbeiten]
gibt einen Iterator zum Anfang eines Bereichs zurück
(customization point object)[bearbeiten]
gibt einen Reverse-Iterator zu einem Range zurück
(customization point object)[bearbeiten]
gibt einen Reverse-End-Iterator zu einem Range zurück
(customization point object)[bearbeiten]

[bearbeiten] Range-Primitive

Definiert im Namespace std::experimental::ranges
erhält die Größe eines Bereichs, dessen Größe in konstanter Zeit berechnet werden kann
(Anpassungspunkt-Objekt)[bearbeiten]
prüft, ob ein Range leer ist
(customization point object)[bearbeiten]
ruft einen Zeiger auf den Anfang eines zusammenhängenden Ranges ab
(customization point object)[bearbeiten]
erhält die Iterator- und Sentinel-Typen eines Bereichs
(alias template)[bearbeiten]

[bearbeiten] Synopsis

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