La classe future

Décrit un objet de retour asynchrone.

Syntaxe

template <class Ty>
class future;

Notes

Chaque fournisseur asynchrone standard retourne un objet dont le type est une instanciation de ce modèle. Un future objet fournit le seul accès au fournisseur asynchrone auquel il est associé. Si vous avez besoin de plusieurs objets de retour asynchrones associés au même fournisseur asynchrone, copiez l’objet future dans un shared_future objet.

Membres

Constructeurs publics

Nom Description
future Construit un objet future.

Méthodes publiques

Nom Description
get Récupère le résultat stocké dans l’état asynchrone associé.
share Convertit l’objet en shared_future.
valid Spécifie si l’objet n’est pas vide.
wait Bloque le thread actuel jusqu’à ce que l’état asynchrone associé soit prêt.
wait_for Bloque le thread actuel jusqu’à ce que l’état asynchrone associé soit prêt ou que le délai spécifié soit écoulé.
wait_until Bloque le thread actuel jusqu’à ce que l’état asynchrone associé soit prêt ou jusqu’à un point spécifié dans le temps.

Opérateurs publics

Nom Description
future::operator= Transfère l’état asynchrone associé à partir d’un objet spécifié.

Spécifications

En-tête<future>:

Espace de noms :std

Constructeurs

Construit un objet future.

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

Paramètres

Other
Objet future.

Notes

Le premier constructeur construit un objet future sans état asynchrone associé.

Le deuxième constructeur construit un future objet et transfère l’état asynchrone associé à Other. L’autre n’a plus d’état asynchrone associé.

get

Récupère le résultat stocké dans l’état asynchrone associé.

Ty get();

Valeur de retour

Si le résultat est une exception, la méthode la lève de nouveau. Sinon, le résultat est retourné.

Notes

Avant de récupérer le résultat, cette méthode bloque le thread actuel jusqu’à ce que l’état asynchrone associé soit prêt.

Pour la spécialisation partielle future<Ty&>, la valeur stockée est une référence à l’objet qui a été passé au fournisseur asynchrone comme valeur de retour.

Comme il n’y a pas de valeur stockée pour la spécialisation future<void>, la méthode retourne void.

Dans d’autres spécialisations, la méthode déplace sa valeur de retour à partir de la valeur stockée. Par conséquent, n’appelez cette méthode qu’une seule fois.

operator=

Transfère un état asynchrone associé à partir d’un objet spécifié.

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

Paramètres

Right
Objet future.

Valeur de retour

*this

Notes

Après le transfert, Right n’a plus d’état asynchrone associé.

share

Convertit l’objet en objet shared_future .

shared_future<Ty> share();

Valeur de retour

shared_future(move(*this))

valid

Spécifie si l’objet a un état asynchrone associé.

bool valid() noexcept;

Valeur de retour

true si l'objet possède un état asynchrone associé ; sinon, false.

wait

Bloque le thread actuel jusqu’à ce que l’état asynchrone associé soit prêt.

void wait() const;

Notes

Un état asynchrone associé est prêt uniquement si son fournisseur asynchrone a stocké une valeur de retour ou une exception.

wait_for

Bloque le thread actuel jusqu’à ce que l’état asynchrone associé soit prêt ou que l’intervalle de temps spécifié soit écoulé.

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

Paramètres

Rel_time
Objet chrono::duration qui spécifie un intervalle de temps maximal que le thread bloque.

Valeur de retour

Qui future_status indique la raison du retour.

Notes

Un état asynchrone associé est prêt uniquement si son fournisseur asynchrone a stocké une valeur de retour ou une exception.

wait_until

Bloque le thread actuel jusqu’à ce que l’état asynchrone associé soit prêt ou jusqu’à un point spécifié dans le temps.

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

Paramètres

Abs_time
Objet time_point qui spécifie une heure après laquelle le thread peut débloquer.

Valeur de retour

Qui future_status indique la raison du retour.

Notes

Un état asynchrone associé est prêt uniquement si son fournisseur asynchrone a stocké une valeur de retour ou une exception.

Voir aussi

Informations de référence sur les fichiers d’en-tête
<future>