Namespaces
Variants

nothrow-input-range, nothrow-forward-range, nothrow-bidirectional-range, no-throw-input-range, nothrow-random-access-range, nothrow-sized-random-access-range

Von de.cppreference.net
 
 
Algorithmusbibliothek
Eingeschränkte Algorithmen und Algorithmen auf Bereichen (C++20)
Eingeschränkte Algorithmen, z.B. ranges::copy, ranges::sort, ...
Nicht modifizierende Sequenzoperationen    
Stapeloperationen
(C++17)
Suchoperationen
Modifizierende Sequenzoperationen
Kopieroperationen
(C++11)
(C++11)
Tauschoperationen
Transformationsoperationen
Erzeugungsoperationen
Entfernungsoperationen
Reihenfolgeändernde Operationen
(bis C++17)(C++11)
(C++20)(C++20)
Stichprobenoperationen
(C++17)

Sortier‑ und verwandte Operationen
Partitionierungsoperationen
(C++11)    

Sortieroperationen
Binäre Suchoperationen
(auf partitionierten Bereichen)
Mengenoperationen (auf sortierten Bereichen)
Mischoperationen (auf sortierten Bereichen)
Haufenoperationen
Minimums-/Maximumsoperationen
(C++11)
(C++17)
Lexikographische Vergleichsoperationen
Permutationsoperationen


 
 
template< class R >
concept /*nothrow-input-range*/ =
    ranges::range<R> &&
    /*nothrow-input-iterator*/<ranges::iterator_t<R>> &&
    /*nothrow-sentinel-for*/<ranges::sentinel_t<R>, ranges::iterator_t<R>>;
(1) (Nur zur Darstellung*)
template< class R >
concept /*nothrow-forward-range*/ =
    /*nothrow-input-range*/<R> &&
    /*nothrow-forward-iterator*/<ranges::iterator_t<R>>;
(2) (Nur zur Darstellung*)
template< class R >
concept /*nothrow-bidirectional-range*/ =
    /*nothrow-forward-range*/<R> &&
    /*nothrow-bidirectional-iterator*/<ranges::iterator_t<R>>;
(3) (seit C++26)
(Nur zur Darstellung*)
template< class R >
concept /*nothrow-random-access-range*/ =
    /*nothrow-bidirectional-range*/<R> &&
    /*nothrow-random-access-iterator*/<ranges::iterator_t<R>>;
(4) (seit C++26)
(Nur zur Darstellung*)
template< class R >
concept /*nothrow-sized-random-access-range*/ =
    /*nothrow-random-access-range*/<R> && ranges::sized_range<R>;
(5) (seit C++26)
(Nur zur Darstellung*)

Diese Nur‑zur‑Darstellung-Konzepte legen fest, dass von Operationen, die von den spezialisierten <memory> Algorithmen auf Bereichen benötigt werden, keine Ausnahmen geworfen werden.

Für die Definitionen von /*nothrow-input-iterator*/, /*nothrow-forward-iterator*/, /*nothrow-bidirectional-iterator*/ und /*nothrow-random-access-iterator*/ siehe diese Seite.

Semantische Anforderungen

1) Ein Typ R modelliert nothrow-input-range nur dann, wenn keine Ausnahmen von Aufrufen von ranges::begin und ranges::end auf einem Objekt des Typs R geworfen werden.
5) Ein Typ R modelliert nothrow-sized-random-access-range nur dann, wenn keine Ausnahmen von Aufrufen von ranges::size auf einem Objekt des Typs R geworfen werden.

Anmerkungen

Diese Konzepte erlauben es, dass einige Operationen auf Bereichen Ausnahmen werfen.

Siehe auch

gibt an, dass ein Typ ein Bereich ist, d.h. er stellt einen beginBegin-Iterator und einen endEnd-Sentinel bereit
(Konzept)
gibt an, dass ein Bereich seine Größe in konstanter Zeit kennt
(Konzept)
erhält die Iterator- und Sentinel-Typen eines Bereichs
(Alias-Vorlage)