Namespaces
Variants

std::generator<Ref,V,Allocator>::iterator

Von de.cppreference.net
 
 
Hilfsbibliothek
Sprachunterstützung
Typunterstützung (Grundtypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programmhilfsmittel
Variadische Funktionen
Koroutinenunterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Vergleichsoperatoren (in C++20 veraltet)
Ganzzahlvergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Swap und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Gemeinsame Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
Koroutinenunterstützung
Koroutinen-Eigenschaften
Koroutinen-Handle
No-Op-Koroutinen
Triviale Awaitables
Bereichsgeneratoren
(C++23)
 
Ranges-Bibliothek
Bereichsadapter
 
 
class /*iterator*/;
(nur zur Veranschaulichung*)

Der Rückgabetyp von generator::begin. Modelliert indirectly_readable und input_iterator.

Mitgliedstypen

Mitglied Definition
value_type std::generator::value
difference_type std::ptrdiff_t

Datenelemente

Element Beschreibung
std::coroutine_handle<std::generator::promise_type> coroutine_ ein Coroutinen-Handle
(nur zur Darstellung Member-Objekt*)

Memberfunktionen

Konstruiert einen Iterator
(öffentliche Elementfunktion)
weist einen anderen Iterator zu
(öffentliche Elementfunktion)
gibt einen zugrundeliegenden Wert zurück
(öffentliche Elementfunktion)
erhöht den Iterator
(öffentliche Elementfunktion)

std::generator:: iterator :: iterator

/*iterator*/ ( /*iterator*/ && other ) noexcept ;
(seit C++23)

Initialisiert coroutine_ mit std:: exchange ( other. coroutine_ , { } ) ; .

std::generator:: iterator :: operator=

/*iterator*/ & operator = ( /*iterator*/ && other ) noexcept ;
(seit C++23)

Entspricht coroutine_ = std:: exchange ( other. coroutine_ , { } ) ; .

Rückgabewert: * this .

std::generator:: iterator :: operator*

reference operator * ( ) const
noexcept ( std:: is_nothrow_copy_constructible_v < reference > ) ;
(seit C++23)
  1. Sei reference der zugrundeliegende Typ von std::generator .
  2. Sei für ein Generator-Objekt x dessen coroutine_ im Stack * x. active_ .
  3. Sei x. active_ - > top ( ) eine Referenz auf eine suspendierte Coroutine mit Promise-Objekt p .

Äquivalent zu return static_cast < reference > ( * p. value_ ) ; .

std::generator:: iterator :: operator++

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (seit C++23)
constexpr void operator ++ ( int ) ;
(2) (seit C++23)
1) Angenommen, für ein Generator-Objekt x befinde sich die coroutine_ im Stack * x. active_ .
Entspricht x. active_ - > top ( ) . resume ( ) .
Rückgabewert: * this .
2) Entspricht ++* this ; .

Nicht-Member-Funktionen

(C++23)
vergleicht den zugrunde liegenden Iterator mit einem Sentinel
(Funktion)

operator== (std::generator:: iterator )

friend bool operator == ( const /*iterator*/ & i, std:: default_sentinel_t ) ;
(seit C++23)

Entspricht return i. coroutine_ . done ( ) ; .

Der != -Operator wird aus operator== synthetisiert .

Diese Funktion ist für gewöhnliche unqualifizierte oder qualifizierte Suche nicht sichtbar und kann nur durch argumentabhängige Suche gefunden werden, wenn std::generator:: iterator eine assoziierte Klasse der Argumente ist.

Beispiel