Namensräume
Varianten
Aktionen

std::execution::just_error

Von cppreference.com
< cpp‎ | execution
 
 
 
Definiert in Header <execution>
inline constexpr just_error_t just_error{};
struct just_error_t { /*nicht spezifiziert*/ };
(seit C++26)
(Customization-Point-Objekt)
Aufruf-Signatur
execution::sender auto just_error( auto&& error );
(seit C++26)

Ein Sender-Factory, die einen Sender zurückgibt, der sofort durch Aufrufen von set_error() des Empfängers abschließt.

Sei e ein Teilausdruck, der durch einen Eingabefehler repräsentiert wird, der in den Empfänger injiziert und von diesem zurückgegeben wird. Der Ausdruck just_error(e) ist ausdrucksäquivalent zu /*make-sender*/(just_error, /*product-type*/(e))

Customization Point Objects

Der Name execution::just_error bezeichnet ein Customization Point Object, ein konstantes Funktionsobjekt eines literalen semiregular-Klassentyps. Die cv-unqualifizierte Version seines Typs ist ein Tag-Typ, der als execution::just_error_t bezeichnet wird.

Alle Instanzen von execution::just_error_t sind gleich. Die Auswirkungen des Aufrufs verschiedener Instanzen des Typs execution::just_error_t mit denselben Argumenten sind äquivalent, unabhängig davon, ob der die Instanz bezeichnende Ausdruck ein lvalue oder rvalue ist und ob er const-qualifiziert ist oder nicht (eine volatile-qualifizierte Instanz muss jedoch nicht aufrufbar sein). Daher kann execution::just_error frei kopiert und seine Kopien können austauschbar verwendet werden.

Gegeben sei eine Menge von Typen Args..., wenn std::declval<Args>()... die obigen Anforderungen für Argumente von execution::just_error erfüllen, dann modelliert execution::just_error_t

Andernfalls nimmt kein Funktionsoperator von execution::just_error_t an der Überladungsauflösung teil.

[bearbeiten] Anmerkungen

Wenn der bereitgestellte Fehler eine lvalue-Referenz ist, wird eine Kopie innerhalb des zurückgegebenen Senders erstellt und eine non-const lvalue-Referenz auf die Kopie an die set_error des Empfängers gesendet. Wenn der bereitgestellte Wert eine rvalue-Referenz ist, wird er in den zurückgegebenen Sender verschoben und eine rvalue-Referenz darauf an die set_error des Empfängers gesendet.

[bearbeiten] Beispiel