std::future
De cppreference.com
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Déclaré dans l'en-tête <future> | ||
template<class T >class future; | (1) | (depuis C++11) |
template<class T >class future<T&>; | (2) | (depuis C++11) |
template<> class future<void>; | (3) | (depuis C++11) |
Le modèle de classe
std::future
fournit un mécanisme pour accéder aux résultats des opérations asynchrones:Original:
The class template
std::future
provides a mechanism to access the result of asynchronous operations:The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
- Une opération asynchrone (créée via std::async, std::packaged_task ou std::promise) peut fournir un objet
std::future
au créateur de cette opération asynchrone .Original:An asynchronous operation (created via std::async, std::packaged_task, or std::promise) can provide astd::future
object to the creator of that asynchronous operation.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
- Le créateur de l'opération asynchrone peut alors utiliser plusieurs méthodes pour demander une valeur, l'attendre, ou l'extraire de la
std::future
. Ces méthodes peuvent bloquer si l'opération asynchrone n'a pas encore fourni une valeur .Original:The creator of the asynchronous operation can then use a variety of methods to query, wait for, or extract a value from thestd::future
. These methods may block if the asynchronous operation has not yet provided a value.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
- Lorsque l'opération asynchrone est prête à envoyer un résultat au créateur, il peut utiliser l'état partagé (par exemple std::promise::set_value) qui est liée au
std::future
du créateur .Original:When the asynchronous operation is ready to send a result to the creator, it can do so by modifying shared state (e.g. std::promise::set_value) that is linked to the creator'sstd::future
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Notez que les références des état partagé des
std::future
qui ne pas sont partagés avec d'autres asynchrones retournent des objets (par opposition à std::shared_future) . Original:
Note that
std::future
references shared state that is not shared with any other asynchronous return objects (as opposed to std::shared_future). The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifier]Fonctions membres
construit l'objet future Original: constructs the future object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
Détruit l'objet future Original: destructs the future object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
déplace l'objet future Original: moves the future object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
renvoie un shared_future en référence au résultat associé à *this Original: returns a shared_future referring to the result associated to *this The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
Original: Getting the result The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
retourne le résultat Original: returns the result The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
Original: State The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
vérifie si le future est un état partagé avec un promise Original: checks if the future has shared state with a promise The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
attend que le résultat soit disponible Original: waits for the result to become available The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
attend le résultat, retourne si il ne sera pas disponible avant que la durée spécifié soit écoulé Original: waits for the result, returns if it is not available for the specified timeout duration The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
attend le résultat, retourne si il ne sera pas disponible avant que le point dans le temps spécifié soit atteint Original: waits for the result, returns if it is not available until specified time point has been reached The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) |
[modifier]Exemple
#include <iostream>#include <future>#include <thread> int main(){// future depuis un packaged_taskstd::packaged_task<int()> task([](){return7;});// wrap the function std::future<int> f1 = task.get_future();// get a futurestd::thread(std::move(task)).detach();// launch on a thread // future depuis un async() std::future<int> f2 =std::async(std::launch::async, [](){return8;}); // future depuis un promisestd::promise<int> p; std::future<int> f3 = p.get_future();std::thread([](std::promise<int>& p){ p.set_value(9);}, std::ref(p)).detach(); std::cout<<"En attente..."; f1.wait(); f2.wait(); f3.wait();std::cout<<"Fait!\nLes resultats sont: "<< f1.get()<<' '<< f2.get()<<' '<< f3.get()<<'\n';}
Résultat :
En attente...Fait! Les résultats sont: 7 8 9
[modifier]Voir aussi
(C++11) | exécute une fonction asynchrone (potentiellement dans un nouveau thread) et renvoie une std::future qui contiendra le résultat Original: runs a function asynchronously (potentially in a new thread) and returns a std::future that will hold the result The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction générique) |
(C++11) | attend une valeur (peut-être référencé par d'autres futurs) qui est fixé de manière asynchrone Original: waits for a value (possibly referenced by other futures) that is set asynchronously The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe générique) |