◐ Shell
clean mode source ↗

std::future - cppreference.com

Da cppreference.com.

Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.

La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui.

Click here for the English version of this page

<tbody> </tbody>

Elemento definito nell'header

<future>

template< class T > class future;

(1) (dal C++11)

template< class T > class future<T&>;

(2) (dal C++11)

template<> class future<void>;

(3) (dal C++11)

Il std::future modello di classe fornisce un meccanismo per accedere al risultato delle operazioni asincrone:

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.

  • Un'operazione asincrona (creato tramite std::async, std::packaged_task o std::promise) in grado di fornire un oggetto std::future al creatore di tale operazione asincrona.

    Original:

    An asynchronous operation (created via std::async, std::packaged_task, or std::promise) can provide a std::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.

  • Il creatore dell'operazione asincrona può utilizzare una varietà di metodi per le query, aspettare, o estrarre un valore dal std::future. Questi metodi possono bloccare se l'operazione asincrona non ha ancora fornito un valore.

    Original:

    The creator of the asynchronous operation can then use a variety of methods to query, wait for, or extract a value from the std::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.

  • Quando l'operazione asincrona è pronto per inviare un risultato al creatore, può farlo mediante la modifica dello stato condiviso (ad esempio std::promise::set_value) che è legata alla std::future del creatore.

    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's std::future.

    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.

Si noti che i riferimenti std::future stato condiviso che non sia condivisa con altri oggetti di ritorno asincroni (a differenza 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.

Membri funzioni

costruisce l'oggetto futuro

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.


(metodo pubblico) [modifica]

distrugge l'oggetto futuro

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.


(metodo pubblico) [modifica]

sposta l'oggetto futuro

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.


(metodo pubblico) [modifica]

restituisce un

shared_future

riferimento al risultato associato al *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.


(metodo pubblico) [modifica]

Ottenere il risultato

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.

restituisce il risultato

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.


(metodo pubblico) [modifica]

Stato

Original:

State

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Verifica se il futuro è stato condiviso con una promessa

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.


(metodo pubblico) [modifica]

attende il risultato diventi disponibile

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.


(metodo pubblico) [modifica]
waits for the result, returns if it is not available for the specified timeout duration
(metodo pubblico) [modifica]

aspetta il risultato, restituisce se non è disponibile fino punto di tempo specificato è stato raggiunto

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.


(metodo pubblico) [modifica]

Esempio

#include <iostream>
#include <future>
#include <thread>

int main()
{
    // future from a 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 from an async()
    std::future<int> f2 = std::async(std::launch::async, [](){ return 8; });

    // future from a 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 << "Waiting...";
    f1.wait();
    f2.wait();
    f3.wait();
    std::cout << "Done!\nResults are: "
              << f1.get() << ' ' << f2.get() << ' ' << f3.get() << '\n';
}

Output:

Waiting...Done!
Results are: 7 8 9

Vedi anche

esegue una funzione in modo asincrono (potenzialmente in un nuovo thread) e restituisce un std::future che conterrà il risultato

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.


(funzione di modello) [modifica]

attende un valore (eventualmente riferimento altri futuri) che è impostato in modo asincrono

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 template) [modifica]