Classe future
Descrive un oggetto restituito asincrono.
Sintassi
template <class Ty>
class future;
Osservazioni:
Ogni provider asincrono standard restituisce un oggetto il cui tipo è una creazione di un'istanza del modello. Un future
oggetto fornisce l'unico accesso al provider asincrono a cui è associato. Se sono necessari più oggetti restituiti asincroni associati allo stesso provider asincrono, copiare l'oggetto future
in un shared_future
oggetto .
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
future |
Costruisce un oggetto future . |
Metodi pubblici
Nome | Descrizione |
---|---|
get |
Recupera il risultato archiviato nello stato asincrono associato. |
share |
Converte l'oggetto in shared_future . |
valid |
Specifica se l'oggetto non è vuoto. |
wait |
Blocca il thread corrente finché lo stato asincrono associato non è ready. |
wait_for |
Blocca finché lo stato asincrono associato non è ready o finché non trascorre il periodo di tempo specificato. |
wait_until |
Blocca finché lo stato asincrono associato non è ready o fino al momento specificato. |
Operatori pubblici
Nome | Descrizione |
---|---|
future::operator= |
Trasferisce lo stato asincrono associato da un oggetto specificato. |
Requisiti
Intestazione: <future>
Spazio dei nomi: std
Costruttori
Costruisce un oggetto future
.
future() noexcept;
future(future&& Other) noexcept;
Parametri
Other
Oggetto future
.
Osservazioni:
Il primo costruttore crea un oggetto future
che non ha uno stato asincrono associato.
Il secondo costruttore costruisce un future
oggetto e trasferisce lo stato asincrono associato da Other. Altri non hanno più uno stato asincrono associato.
get
Recupera il risultato archiviato nello stato asincrono associato.
Ty get();
Valore restituito
Se il risultato è un'eccezione, il metodo la genera nuovamente. In caso contrario, viene restituito il risultato.
Osservazioni:
Prima di recuperare il risultato, questo metodo blocca il thread corrente finché lo stato asincrono associato non è ready.
Per la specializzazione parziale future<Ty&>
, il valore archiviato è di fatto un riferimento all'oggetto passato al provider asincrono come valore restituito.
Poiché non esiste alcun valore archiviato per la specializzazione future<void>
, il metodo restituisce void
.
In altre specializzazioni il metodo sposta il relativo valore restituito dal valore archiviato. Pertanto, chiamare questo metodo solo una volta.
operator=
Trasferisce uno stato asincrono associato da un oggetto specificato.
future& operator=(future&& Right) noexcept;
Parametri
A destra
Oggetto future
.
Valore restituito
*this
Osservazioni:
Dopo il trasferimento, Right non ha più uno stato asincrono associato.
share
Converte l'oggetto in un shared_future
oggetto .
shared_future<Ty> share();
Valore restituito
shared_future(move(*this))
valid
Specifica se l'oggetto ha uno stato asincrono associato.
bool valid() noexcept;
Valore restituito
true
se l'oggetto ha uno stato asincrono associato; in caso contrario, false
.
wait
Blocca il thread corrente finché lo stato asincrono associato non è ready.
void wait() const;
Osservazioni:
Uno stato asincrono associato è ready solo se il provider asincrono ha archiviato un valore restituito o un'eccezione.
wait_for
Blocca il thread corrente finché lo stato asincrono associato non è ready o finché non trascorre un determinato intervallo di tempo.
template <class Rep, class Period>
future_status wait_for(const chrono::duration<Rep, Period>& Rel_time) const;
Parametri
Rel_time
Oggetto chrono::duration
che specifica un intervallo di tempo massimo bloccato dal thread.
Valore restituito
Oggetto future_status
che indica il motivo della restituzione.
Osservazioni:
Uno stato asincrono associato è ready solo se il provider asincrono ha archiviato un valore restituito o un'eccezione.
wait_until
Blocca il thread corrente finché lo stato asincrono associato non è ready o fino a un determinato momento.
template <class Clock, class Duration>
future_status wait_until(const chrono::time_point<Clock, Duration>& Abs_time) const;
Parametri
Abs_time
Oggetto time_point
che specifica un'ora dopo la quale il thread può sbloccare.
Valore restituito
Oggetto future_status
che indica il motivo della restituzione.
Osservazioni:
Uno stato asincrono associato è ready solo se il provider asincrono ha archiviato un valore restituito o un'eccezione.