Share via


promise, classe

Décrit un fournisseur asynchrone.

Syntaxe

template <class Ty>
class promise;

Membres

Constructeurs publics

Nom Description
Promesse Construit un objet promise.

Méthodes publiques

Nom Description
get_future Retourne un objet future associé à cet objet promise.
set_exception Définit atomiquement le résultat de cet objet promise pour indiquer une exception.
set_exception_at_thread_exit Définit atomiquement le résultat de cet objet promise pour indiquer une exception, et remet la notification uniquement quand tous les objets locaux de thread dans le thread actuel ont été détruits (généralement à la sortie du thread).
set_value Définit atomiquement le résultat de cet objet promise pour indiquer une valeur.
set_value_at_thread_exit Définit atomiquement le résultat de cet objet promise pour indiquer une valeur, et remet la notification uniquement quand tous les objets locaux de thread dans le thread actuel ont été détruits (généralement à la sortie du thread).
swap Échange l’état asynchrone associé de cet objet promise avec celui d’un objet promise spécifié.

Opérateurs publics

Nom Description
promise::operator= Assignation de l’état partagé de cet objet promise.

Hiérarchie d'héritage

Promesse

Spécifications

Header :<future>

Espace de noms : std

promise::get_future

Retourne un objet future qui a le même état asynchrone associé que cet objet promise.

future<Ty> get_future();

Notes

Si l’objet promise est vide, cette méthode lève une exception future_error avec le code error_codeno_state.

Si cette méthode a déjà été appelée pour un objet promise ayant le même état asynchrone associé, la méthode lève une exception future_error avec le code error_codefuture_already_retrieved.

promise::operator=

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

promise& operator=(promise&& Other) noexcept;

Paramètres

Autres
Objet promise.

Valeur de retour

*this

Notes

Cet opérateur transfère l’état asynchrone associé à Other. Après le transfert, Other est vide.

promise::promise, constructeur

Construit un objet promise.

promise();
template <class Alloc>
promise(allocator_arg_t, const Alloc& Al);
promise(promise&& Other) noexcept;

Paramètres

Al
Allocateur de mémoire. Pour plus d’informations sur les allocators, consultez les allocators>.<

Autres
Objet promise.

Notes

Le premier constructeur construit un objet promisevide.

Le deuxième constructeur construit un objet vide promise et utilise Al pour l’allocation de mémoire.

Le troisième constructeur construit un promise objet et transfère l’état asynchrone associé à Other et laisse Other vide.

promise::set_exception

Stocke atomiquement une exception comme résultat de cet objet promise et définit l’état asynchrone associé sur ready.

void set_exception(exception_ptr Exc);

Paramètres

Exc
exception_ptr qui est stocké par cette méthode comme résultat de l’exception.

Notes

Si l’objet promise n’a pas d’état asynchrone associé, cette méthode lève une exception future_error avec le code d’erreur no_state.

Si la méthode set_exception, set_exception_at_thread_exit, set_value ou set_value_at_thread_exit a déjà été appelée pour un objet promise ayant le même état asynchrone associé, cette méthode lève une exception future_error avec le code d’erreur promise_already_satisfied.

Cette méthode libère tous les threads qui sont bloqués sur l’état asynchrone associé.

promise::set_exception_at_thread_exit

Définit atomiquement le résultat de cet objet promise pour indiquer une exception, et remet la notification uniquement quand tous les objets locaux de thread dans le thread actuel ont été détruits (généralement à la sortie du thread).

void set_exception_at_thread_exit(exception_ptr Exc);

Paramètres

Exc
exception_ptr qui est stocké par cette méthode comme résultat de l’exception.

Notes

Si l’objet promise n’a pas d’état asynchrone associé, cette méthode lève une exception future_error avec le code d’erreur no_state.

Si la méthode set_exception, set_exception_at_thread_exit, set_value ou set_value_at_thread_exit a déjà été appelée pour un objet promise ayant le même état asynchrone associé, cette méthode lève une exception future_error avec le code d’erreur promise_already_satisfied.

Contrairement à set_exception, cette méthode ne définit pas l’état asynchrone associé comme prêt tant que tous les objets locaux de thread dans le thread actuel n’ont pas été détruits. En règle générale, les threads qui sont bloqués sur l’état asynchrone associé ne sont pas débloqués tant que le thread actuel ne se termine pas.

promise::set_value

Stocke atomiquement une valeur comme résultat de cet objet promise et définit l’état asynchrone associé sur ready.

void promise::set_value(const Ty& Val);
void promise::set_value(Ty&& Val);
void promise<Ty&>::set_value(Ty& Val);
void promise<void>::set_value();

Paramètres

Val
Valeur à stocker comme résultat.

Notes

Si l’objet promise n’a pas d’état asynchrone associé, cette méthode lève une exception future_error avec le code d’erreur no_state.

Si la méthode set_exception, set_exception_at_thread_exit, set_value ou set_value_at_thread_exit a déjà été appelée pour un objet promise ayant le même état asynchrone associé, cette méthode lève une exception future_error avec le code d’erreur promise_already_satisfied.

Cette méthode libère tous les threads qui sont bloqués sur l’état asynchrone associé.

La première méthode lève également toute exception levée lorsque Val est copié dans l’état asynchrone associé. Dans ce cas, l’état asynchrone associé n’est pas prêt.

La deuxième méthode lève également toute exception levée lorsque Val est déplacé dans l’état asynchrone associé. Dans ce cas, l’état asynchrone associé n’est pas prêt.

Pour la spécialisation promise<Ty&>partielle, la valeur stockée est en effet une référence à Val.

Pour la spécialisation promise<void>, aucune valeur stockée n’existe.

promise::set_value_at_thread_exit

Stocke atomiquement une valeur comme résultat de cet objet promise.

void promise::set_value_at_thread_exit(const Ty& Val);
void promise::set_value_at_thread_exit(Ty&& Val);
void promise<Ty&>::set_value_at_thread_exit(Ty& Val);
void promise<void>::set_value_at_thread_exit();

Paramètres

Val
Valeur à stocker comme résultat.

Notes

Si l’objet promise n’a pas d’état asynchrone associé, cette méthode lève une exception future_error avec le code d’erreur no_state.

Si la méthode set_exception, set_exception_at_thread_exit, set_value ou set_value_at_thread_exit a déjà été appelée pour un objet promise ayant le même état asynchrone associé, cette méthode lève une exception future_error avec le code d’erreur promise_already_satisfied.

Contrairement à set_value, l’état asynchrone associé n’est pas défini sur prêt tant que tous les objets locaux de thread dans le thread actuel n’ont pas été détruits. En règle générale, les threads qui sont bloqués sur l’état asynchrone associé ne sont pas débloqués tant que le thread actuel ne se termine pas.

La première méthode lève également toute exception levée lorsque Val est copié dans l’état asynchrone associé.

La deuxième méthode lève également toute exception levée lorsque Val est déplacé dans l’état asynchrone associé.

Pour la spécialisation promise<Ty&>partielle, la valeur stockée est effectivement une référence à Val.

Pour la spécialisation promise<void>, aucune valeur stockée n’existe.

promise::swap

Échange l’état asynchrone associé de cet objet promise avec celui d’un objet spécifié.

void swap(promise& Other) noexcept;

Paramètres

Autres
Objet promise.

Voir aussi

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