promise-Klasse
Beschreibt einen asynchronen Anbieter.
Syntax
template <class Ty>
class promise;
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
versprechen | Erstellt ein promise -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
get_future | Gibt eine dieser Zusage zugeordnete Zukunft zurück. |
set_exception | Legt das Ergebnis dieser Zusage atomisch zum Angeben einer Ausnahme fest. |
set_exception_at_thread_exit | Legt das Ergebnis dieser Zusage zum Angeben einer Ausnahme atomisch fest, und stellt die Benachrichtigung nur zu, nachdem alle Objekte eines lokalen Threads im aktuellen Thread zerstört wurden (normalerweise zur Threadbeendigung). |
set_value | Legt das Ergebnis dieser Zusage zum Angeben eines Werts atomisch fest. |
set_value_at_thread_exit | Legt das Ergebnis dieser Zusage zum Angeben eines Werts atomisch fest, und stellt die Benachrichtigung nur zu, nachdem alle Objekte eines lokalen Threads im aktuellen Thread zerstört wurden (normalerweise zur Threadbeendigung). |
swap | Tauscht den zugeordneten asynchronen Zustand dieser Zusage mit dem eines angegebenen Zusageobjekts aus. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
promise::operator= | Zuweisung des Freigabestatus dieses Zusageobjekts. |
Vererbungshierarchie
versprechen
Anforderungen
Header:<future>
Namespace: std
promise::get_future
Gibt ein Zukunft-Objekt zurück, das über den gleichen zugeordneten asynchronen Zustand wie die Zusage verfügt.
future<Ty> get_future();
Hinweise
Wenn das Zusageobjekt leer ist, löst diese Methode future_error mit einem error_code von no_state
aus.
Wenn diese Methode bereits für ein Zusageobjekt mit dem gleichen zugeordneten asynchronen Zustand aufgerufen wurde, löst die Methode future_error
mit error_code
von future_already_retrieved
aus.
promise::operator=
Überträgt den zugeordneten asynchronen Zustand aus einem angegebenen promise
-Objekt.
promise& operator=(promise&& Other) noexcept;
Parameter
Andere
Ein promise
-Objekt.
Rückgabewert
*this
Bemerkungen
Dieser Operator überträgt den zugeordneten asynchronen Zustand von Other. Nach der Übertragung ist Other leer.
promise::promise-Konstruktor
Erstellt ein promise
-Objekt.
promise();
template <class Alloc>
promise(allocator_arg_t, const Alloc& Al);
promise(promise&& Other) noexcept;
Parameter
Al
Eine Speicherbelegung. Weitere Informationen zu Allokatoren finden Sie unter <Allokatoren>.
Andere
Ein promise
-Objekt.
Hinweise
Der erste Konstruktor erstellt ein leeres promise
Objekt.
Der zweite Konstruktor erstellt ein leeres promise
Objekt und verwendet Al für die Speicherzuweisung.
Der dritte Konstruktor erstellt ein promise
Objekt und überträgt den zugeordneten asynchronen Zustand von Other und lässt Other leer.
promise::set_exception
Es wird atomisch eine Ausnahme als Ergebnis dieses promise
-Objekts gespeichert, und der entsprechende asynchrone Zustand wird auf fertig festgelegt.
void set_exception(exception_ptr Exc);
Parameter
Ohne
Ein exception_ptr, der von dieser Methode als Ausnahmeergebnis gespeichert ist.
Hinweise
Wenn das promise
-Objekt über keinen zugeordneten asynchronen Zustand verfügt, löst diese Methode future_error mit einem Fehlercode von no_state
aus.
Wenn set_exception
, set_exception_at_thread_exit, set_value oder set_value_at_thread_exit bereits für ein promise
-Objekt mit demselben zugeordneten asynchronen Zustand aufgerufen wurde, löst diese Methode future_error
mit einem Fehlercode von promise_already_satisfied
aus.
Aufgrund dieser Methode wird die Blockierung aller Threads, die auf dem zugeordneten asynchronen Zustand blockiert werden, aufgehoben.
promise::set_exception_at_thread_exit
Legt das Ergebnis von promise
zum Angeben einer Ausnahme atomisch fest, und stellt die Benachrichtigung nur zu, nachdem alle Objekte eines lokalen Threads im aktuellen Thread zerstört wurden (normalerweise zur Threadbeendigung).
void set_exception_at_thread_exit(exception_ptr Exc);
Parameter
Ohne
Ein exception_ptr, der von dieser Methode als Ausnahmeergebnis gespeichert ist.
Hinweise
Wenn das Zusageobjekt über keinen zugeordneten asynchronen Zustand verfügt, löst diese Methode future_error mit einem Fehlercode von no_state
aus.
Wenn , set_exceptionset_exception_at_thread_exit
, set_value oder set_value_at_thread_exit bereits für ein promise
-Objekt mit demselben zugeordneten asynchronen Zustand aufgerufen wurde, löst diese Methode future_error
mit einem Fehlercode von promise_already_satisfied
aus.
Im Gegensatz zu set_exception legt diese Methode den zugeordneten asynchronen Zustand erst so fest, dass er bereit ist, bis alle threadlokalen Objekte im aktuellen Thread zerstört wurden. In der Regel werden Threads, die für den zugeordneten asynchronen Zustand blockiert sind, erst aufgehoben, wenn der aktuelle Thread beendet wird.
promise::set_value
Es wird atomisch ein Wert als Ergebnis dieses promise
-Objekts gespeichert, und der entsprechende asynchrone Zustand wird auf fertig festgelegt.
void promise::set_value(const Ty& Val);
void promise::set_value(Ty&& Val);
void promise<Ty&>::set_value(Ty& Val);
void promise<void>::set_value();
Parameter
Val
Der als Ergebnis zu speichernde Wert.
Hinweise
Wenn das promise
-Objekt über keinen zugeordneten asynchronen Zustand verfügt, löst diese Methode future_error mit einem Fehlercode von no_state
aus.
Wenn set_exception, set_exception_at_thread_exit, set_value
oder set_value_at_thread_exit bereits für ein promise
-Objekt mit demselben zugeordneten asynchronen Zustand aufgerufen wurde, löst diese Methode future_error
mit einem Fehlercode von promise_already_satisfied
aus.
Aufgrund dieser Methode wird die Blockierung aller Threads, die auf dem zugeordneten asynchronen Zustand blockiert werden, aufgehoben.
Die erste Methode löst auch eine Ausnahme aus, die ausgelöst wird, wenn Val in den zugeordneten asynchronen Zustand kopiert wird. In diesem Fall ist der zugeordnete asynchrone Zustand nicht auf "Bereit" festgelegt.
Die zweite Methode löst auch eine Ausnahme aus, die ausgelöst wird, wenn Val in den zugeordneten asynchronen Zustand verschoben wird. In diesem Fall ist der zugeordnete asynchrone Zustand nicht auf "Bereit" festgelegt.
Für die Teilspezialisierung promise<Ty&>
ist der gespeicherte Wert tatsächlich ein Verweis auf Val.
Für die Spezialisierung promise<void>
ist kein gespeicherter Wert vorhanden.
promise::set_value_at_thread_exit
Speichert einen Wert atomisch als Ergebnis dieses promise
-Objekts.
void promise::set_value_at_thread_exit(const Ty& Val);
void promise::set_value_at_thread_exit(Ty&& Val);
void promise<Ty&>::set_value_at_thread_exit(Ty& Val);
void promise<void>::set_value_at_thread_exit();
Parameter
Val
Der als Ergebnis zu speichernde Wert.
Hinweise
Wenn das Zusageobjekt über keinen zugeordneten asynchronen Zustand verfügt, löst diese Methode future_error mit einem Fehlercode von no_state
aus.
Wenn set_exception, set_exception_at_thread_exit, set_value oder set_value_at_thread_exit
bereits für ein promise
-Objekt mit demselben zugeordneten asynchronen Zustand aufgerufen wurde, löst diese Methode future_error
mit einem Fehlercode von promise_already_satisfied
aus.
Im Gegensatz zu set_value
, der zugeordnete asynchrone Zustand ist erst bereit, nachdem alle threadlokalen Objekte im aktuellen Thread zerstört wurden. In der Regel werden Threads, die für den zugeordneten asynchronen Zustand blockiert sind, erst aufgehoben, wenn der aktuelle Thread beendet wird.
Die erste Methode löst auch eine Ausnahme aus, die ausgelöst wird, wenn Val in den zugeordneten asynchronen Zustand kopiert wird.
Die zweite Methode löst auch eine Ausnahme aus, die ausgelöst wird, wenn Val in den zugeordneten asynchronen Zustand verschoben wird.
Für die Teilspezialisierung promise<Ty&>
ist der gespeicherte Wert effektiv ein Verweis auf Val.
Für die Spezialisierung promise<void>
ist kein gespeicherter Wert vorhanden.
promise::swap
Tauscht den zugeordneten asynchronen Zustand dieses Zusageobjekts mit dem eines angegebenen Objekts aus.
void swap(promise& Other) noexcept;
Parameter
Andere
Ein promise
-Objekt.