Namespaces
Variants

std::experimental::future<T>:: future

From cppreference.net

future ( ) noexcept ;
(1)
future ( std:: experimental :: future < T > && f ) noexcept ;
(2)
future ( const std:: experimental :: future < T > & ) = delete ;
(3)
(4)
1) Standardkonstruktor. Konstruiert ein leeres future -Objekt, das sich auf keinen gemeinsamen Zustand bezieht.
2) Erstellt ein future -Objekt, das den gemeinsamen Zustand überträgt, der von f gehalten wird, falls vorhanden. Nach der Konstruktion ist f. valid ( ) false .
3) Copy-Konstruktor ist gelöscht. future kann nicht kopiert werden.
4) Entpackender Konstruktor. Konstruiert ein future -Objekt aus dem durch other referenzierten gemeinsamen Zustand, falls vorhanden. Wenn other. valid ( ) == false vor diesem Aufruf, ist das konstruierte future -Objekt leer. Andernfalls wird das resultierende future -Objekt bereit, wenn eines der folgenden Ereignisse eintritt:
  • other und other. get ( ) beide bereit sind. Der Wert oder die Ausnahme von other. get ( ) wird im gemeinsamen Zustand des resultierenden future -Objekts gespeichert.
  • other ist bereit, aber other. get ( ) ist ungültig. Eine Ausnahme vom Typ std::future_error mit einer Fehlerbedingung std::future_errc::broken_promise wird im gemeinsamen Zustand des resultierenden future -Objekts gespeichert.
Nachdem dieser Konstruktor zurückkehrt, valid ( ) entspricht dem Wert von other. valid ( ) vor diesem Aufruf, und other. valid ( ) == false .


Inhaltsverzeichnis

Parameter

f - ein weiteres Future-Objekt zur Initialisierung
other - ein std::experimental::future Objekt zum Entpacken

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 2697 Concurrency TS Verhalten des Unwrapping-Konstruktors ist unklar mit einem ungültigen future konstruiert einen leeren future

Siehe auch

Konstruiert das Future-Objekt
(öffentliche Elementfunktion von std::future<T> )