Namensräume
Varianten
Aktionen

std::experimental::ranges::prev

Von cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
Iterator-Bibliothek
Iterator-Konzepte
Indirekte aufrufbare Konzepte
                                                  
                                                  
                                                  
Gemeinsame Algorithmus-Anforderungen
                                                  
Konzept-Dienstprogramme
Iterator-Dienstprogramme und -Operationen
prev
Iterator-Traits
Iterator-Adapter
Stream-Iteratoren
 
Definiert in Header <experimental/ranges/iterator>
namespace {

    constexpr /* nicht spezifiziert */ prev = /* nicht spezifiziert */;

}
(Ranges TS)
(Customization-Point-Objekt)
Aufruf-Signatur
template< Iterator I >
constexpr I prev( I i );
(1)
template< Iterator I >
constexpr I prev( I i, ranges::difference_type_t<I> n );
(2)
template< Iterator I >
constexpr I prev( I i, ranges::difference_type_t<I> n, I bound );
(3)

Dekrementiert den Iterator i n mal, oder bis bound erreicht ist, je nachdem, was zuerst eintritt, und gibt den dekrementierten Iterator zurück.

1) Äquivalent zu --i; return i;.
2) Äquivalent zu ranges::advance(i, -n); return i;.
3) Äquivalent zu ranges::advance(i, -n, bound); return i;.

Inhalt

[bearbeiten] Customization Point Objects

Der Name ranges::prev bezeichnet ein Customization Point Object, was ein Funktionsobjekt eines literalen Semiregular-Klassentyps ist (der zur Veranschaulichung als PrevT bezeichnet wird). Alle Instanzen von PrevT sind gleich. Daher kann ranges::prev frei kopiert und seine Kopien können austauschbar verwendet werden.

Gegeben eine Menge von Typen Args..., wenn std::declval<Args>()... die Anforderungen für Argumente von ranges::prev oben erfüllen, wird PrevT ranges::Invocable<const PrevT, Args...> erfüllen. Andernfalls nimmt kein Funktionsaufrufoperator von PrevT an der Überladungsauflösung teil.

In jeder Übersetzungseinheit, in der ranges::prev definiert ist, bezieht es sich auf dieselbe Instanz des Customization Point Objects. (Das bedeutet, dass es frei in Dingen wie Inline-Funktionen und Funktionsvorlagen verwendet werden kann, ohne die Ein-Definitionen-Regel zu verletzen.)

[edit] Rückgabewert

Der dekrementierte Iterator.

[edit] Beispiel

[edit] Siehe auch

(C++11)
dekrementiert einen Iterator
(Funktionsvorlage) [bearbeiten]
bewegt einen Iterator um die angegebene Distanz vorwärts
(Funktionsvorlage) [bearbeiten]
inkrementiert einen Iterator
(Funktionsvorlage) [bearbeiten]
gibt die Distanz zwischen einem Iterator und einem Sentinel zurück, oder zwischen dem Anfang und dem Ende eines Bereichs
(Funktionsvorlage) [bearbeiten]