Namespaces
Variants

std::packaged_task<R(Args...)>:: operator()

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void operator ( ) ( ArgTypes... args ) ;
(depuis C++11)

Appelle la tâche stockée comme si par INVOKE<R> ( f, args... ) , où f est la tâche stockée. La valeur de retour de la tâche ou toute exception levée sont stockées dans l'état partagé. L'état partagé est marqué comme prêt et tous les threads en attente sont débloqués.

Table des matières

Paramètres

args - les paramètres à passer lors de l'invocation de la tâche stockée

Valeur de retour

(aucun)

Exceptions

std::future_error sur les conditions d'erreur suivantes :

  • La tâche stockée a déjà été invoquée. La catégorie d'erreur est définie sur promise_already_satisfied .
  • * this n'a pas d'état partagé. La catégorie d'erreur est définie sur no_state .

Exemple

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR S'applique à Comportement publié Comportement correct
LWG 2142 C++11 un appel réussi à operator ( ) synchronisé avec
un appel à toute fonction membre d'un std::future ou
std::shared_future qui partagent leur état partagé avec * this
aucune garantie de synchronisation
supplémentaire autre que celle
déjà fournie par l'état partagé

Voir aussi

exécute la fonction en garantissant que le résultat est prêt uniquement lorsque le thread actuel se termine
(fonction membre publique)