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>