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. |
| Dclar dans l'en-tte <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 modle de classe
std::future fournit un mcanisme pour accder aux rsultats des oprations 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 opration asynchrone (cre via std::async, std::packaged_task ou std::promise) peut fournir un objet
std::futureau crateur de cette opration asynchrone .Original:An asynchronous operation (created via std::async, std::packaged_task, or std::promise) can provide astd::futureobject 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 crateur de l'opration asynchrone peut alors utiliser plusieurs mthodes pour demander une valeur, l'attendre, ou l'extraire de la
std::future. Ces mthodes peuvent bloquer si l'opration 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'opration asynchrone est prte envoyer un rsultat au crateur, il peut utiliser l'tat partag (par exemple
std::promise::set_value) qui est lie austd::futuredu crateur .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 rfrences des tat partag des
std::future qui ne pas sont partags 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.
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) | |
Dtruit 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) | |
dplace 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 rfrence au rsultat associ *thisOriginal: returns a shared_future referring to the result associated to *thisThe 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 rsultat 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. | |
vrifie 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 rsultat 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 rsultat, retourne si il ne sera pas disponible avant que la dure spcifi 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 rsultat, retourne si il ne sera pas disponible avant que le point dans le temps spcifi 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) | |
Exemple
#include <iostream>
#include <future>
#include <thread>
int main()
{
// future depuis un packaged_task
std::packaged_task<int()> task([](){ return 7; }); // wrap the function
std::future<int> f1 = task.get_future(); // get a future
std::thread(std::move(task)).detach(); // launch on a thread
// future depuis un async()
std::future<int> f2 = std::async(std::launch::async, [](){ return 8; });
// future depuis un promise
std::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';
}
Rsultat :
En attente...Fait!
Les rsultats sont: 7 8 9
Voir aussi
(C++11) |
excute une fonction asynchrone (potentiellement dans un nouveau thread) et renvoie une std::future qui contiendra le rsultat 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 gnrique) |
(C++11) |
attend une valeur (peut-tre rfrenc par d'autres futurs) qui est fix de manire 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 gnrique) |