◐ Shell
clean mode source ↗

std::future – cppreference.com

Aus cppreference.com

<tbody> </tbody>

definiert in Header

<future>

template< class T > class future;

(1) (seit C++11)

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

(2) (seit C++11)

template<> class future<void>;

(3) (seit C++11)

Das Klassen-Template std::future bietet einen Mechanismus, um auf das Ergebnis von asynchronen Operationen zuzugreifen

  • Ein asynchroner Vorgang (erstellt über std::async, std::packaged_task oder std::promise) kann ein std::future Objekt einem Auslöser einer asynchronen Operation bereitstellen.
  • Der Auslöser des asynchronen Vorgangs kann dann eine Vielzahl von Methoden zur Abfrage, zum Warten auf, oder zum Extrahieren eines Wertes aus std::future. Diese Methoden können blockieren, wenn die asynchrone Operation noch keinen Wert geliefert hat.
  • Wenn der asynchrone Vorgang bereit ist, dem Auslöser ein Ergebnis bereitzustellen, kann es dies durch Änderung des gemeinsamen Zustands tun (z.B. std::promise::set_value), der mit dem std::future des Auslösers verbunden ist.

Beachten Sie, dass std::future einen gemeinsamen Zustand referenziert, der nicht mit anderen asynchronen Rückgabeobjekten gemein ist (im Gegensatz zu std::shared_future).

Member-Funktionen

baut das Zukunft Objekt

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.


(öffentliche Elementfunktion) [edit]

zerstört sich das Zukunft Objekt

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.


(öffentliche Elementfunktion) [edit]

bewegt das Zukunft Objekt

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.


(öffentliche Elementfunktion) [edit]

gibt eine

shared_future

Bezugnahme auf das Ergebnis zugeordnet *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.


(öffentliche Elementfunktion) [edit]
Zugriff auf das Ergebnis

gibt das Ergebnis

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.


(öffentliche Elementfunktion) [edit]

State

Original:

State

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

überprüft, ob das Future einen shared State mit einem promise teilt.

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.


(öffentliche Elementfunktion) [edit]

wartet darauf dass das Ergebnis verfügbar wird

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.


(öffentliche Elementfunktion) [edit]
waits for the result, returns if it is not available for the specified timeout duration
(öffentliche Elementfunktion) [edit]

wartet auf das Ergebnis liefert, wenn es nicht verfügbar ist, bis spezifizierte Zeit erreicht worden ist

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.


(öffentliche Elementfunktion) [edit]

Beispiel

#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

Siehe auch

betreibt eine Funktion asynchron (möglicherweise in einem neuen Thread) und gibt einen std::future, die das Ergebnis halten wird

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.


(Funktions-Template) [edit]

wartet auf einen Wert (eventuell von anderen Futures verwiesen wird), die asynchron ist

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.


(Klassen-Template) [edit]