Freigeben über


future-Klasse

Beschreibt ein asynchrones Rückgabeobjekt.

Syntax

template <class Ty>
class future;

Hinweise

Jeder standardmäßige asynchrone Anbieter gibt ein Objekt zurück, dessen Typ eine Instanziierung dieser Vorlage ist. Ein future Objekt bietet den einzigen Zugriff auf den asynchronen Anbieter, dem es zugeordnet ist. Wenn Sie mehrere asynchrone Rückgabeobjekte benötigen, die demselben asynchronen Anbieter zugeordnet sind, kopieren Sie das future Objekt in ein shared_future Objekt.

Member

Öffentliche Konstruktoren

Name Beschreibung
future Erstellt ein future-Objekt.

Öffentliche Methoden

Name Beschreibung
get Ruft das Ergebnis ab, das im zugeordneten asynchronen Zustand gespeichert ist.
share Konvertiert das Objekt in ein shared_future.
valid Gibt an, ob das Objekt nicht leer ist.
wait Blockiert den aktuellen Thread, bis der zugeordnete asynchrone Zustandbereit ist.
wait_for Blockiert, bis der zugeordnete asynchrone Zustand bereit ist, oder bis die angegebene Zeit verstrichen ist.
wait_until Blockiert, bis der zugeordnete asynchrone Zustand bereit ist, oder bis ein angegebener Zeitpunkt erreicht ist.

Öffentliche Operatoren

Name Beschreibung
future::operator= Überträgt den zugeordneten asynchronen Zustand aus einem angegebenen Objekt.

Anforderungen

Header: <future>

Namespace:std

Konstruktoren

Erstellt ein future-Objekt.

future() noexcept;
future(future&& Other) noexcept;

Parameter

Other
Ein future-Objekt.

Hinweise

Mit dem ersten Konstruktor wird ein future-Objekt erstellt, das über keinen zugeordneten asynchronen Zustand verfügt.

Der zweite Konstruktor erstellt ein future Objekt und überträgt den zugeordneten asynchronen Zustand von Other. Andere haben keinen zugeordneten asynchronen Zustand mehr.

get

Ruft das Ergebnis ab, das im zugeordneten asynchronen Zustand gespeichert ist.

Ty get();

Rückgabewert

Wenn das Ergebnis eine Ausnahme ist, wird es erneut von der Methode ausgelöst. Andernfalls wird das Ergebnis zurückgegeben.

Hinweise

Bevor sie das Ergebnis abruf, blockiert diese Methode den aktuellen Thread, bis der zugeordnete asynchrone Zustand bereit ist.

Für die Teilspezialisierung future<Ty&> ist der gespeicherte Wert praktisch ein Verweis auf das Objekt, das dem asynchronen Anbieter als Rückgabewert übergeben wurde.

Weil für die Spezialisierung future<void> kein gespeicherten Wert existiert, gibt die Methode void zurück.

In anderen Spezialisierung verschiebt die Methode ihren Rückgabewert aus dem gespeicherten Wert. Deshalb sollten Sie diese Methode nur einmal aufrufen.

operator=

Überträgt einen zugeordneten asynchronen Zustand aus einem angegebenen Objekt.

future& operator=(future&& Right) noexcept;

Parameter

Right
Ein future-Objekt.

Rückgabewert

*this

Bemerkungen

Nach der Übertragung verfügt Right nicht mehr über einen zugeordneten asynchronen Zustand.

share

Konvertiert das Objekt in ein shared_future Objekt.

shared_future<Ty> share();

Rückgabewert

shared_future(move(*this))

valid

Gibt an, ob das Objekt einen zugeordneten asynchronen Zustand hat.

bool valid() noexcept;

Rückgabewert

true, wenn das Objekt einen zugeordneten asynchronen Zustand hat; andernfalls false.

wait

Blockiert den aktuellen Thread, bis der zugeordnete asynchrone Zustand bereit ist.

void wait() const;

Hinweise

Ein zugeordneter asynchroner Zustand ist nur dann bereit, wenn sein asynchroner Anbieter einen Rückgabewert oder eine Ausnahme gespeichert hat.

wait_for

Blockiert dem aktuelle Thread, bis der zugeordnete asynchrone Zustand bereit ist, oder bis ein angegebenes Zeitintervall verstrichen ist.

template <class Rep, class Period>
future_status wait_for(const chrono::duration<Rep, Period>& Rel_time) const;

Parameter

Rel_time
Ein chrono::duration Objekt, das ein maximales Zeitintervall angibt, das der Thread blockiert.

Rückgabewert

Ein future_status Wert, der den Grund für die Rückgabe angibt.

Hinweise

Ein zugeordneter asynchroner Zustand ist nur dann bereit, wenn sein asynchroner Anbieter einen Rückgabewert oder eine Ausnahme gespeichert hat.

wait_until

Blockiert den aktuelle Thread, bis der zugeordnete asynchrone Zustand bereit oder ein angegebener Zeitpunkt verstrichen ist.

template <class Clock, class Duration>
future_status wait_until(const chrono::time_point<Clock, Duration>& Abs_time) const;

Parameter

Abs_time
Ein time_point Objekt, das eine Zeit angibt, nach der der Thread die Blockierung aufheben kann.

Rückgabewert

Ein future_status Wert, der den Grund für die Rückgabe angibt.

Hinweise

Ein zugeordneter asynchroner Zustand ist nur dann bereit, wenn sein asynchroner Anbieter einen Rückgabewert oder eine Ausnahme gespeichert hat.

Siehe auch

Headerdateienreferenz
<future>