std::execution::just_error
| 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
- std::invocable<execution::just_error_t, Args...>,
- std::invocable<const execution::just_error_t, Args...>,
- std::invocable<execution::just_error_t&, Args...>, und
- std::invocable<const execution::just_error_t&, Args...>.
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
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |