Condividi tramite


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

Right
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.

Vedi anche

Riferimento file di intestazione
<future>