std::future<T>::valid
| bool valid() const noexcept; |
(seit C++11) | |
Prüft, ob das Future einen Shared State referenziert.
Dies ist nur für Futures der Fall, die nicht standardmäßig konstruiert oder von ihnen verschoben wurden (d.h. zurückgegeben von std::promise::get_future(), std::packaged_task::get_future() oder std::async()), bis zum ersten Aufruf von get() oder share().
Das Verhalten ist undefiniert, wenn eine andere Member-Funktion als der Destruktor, der Move-Zuweisungsoperator oder valid auf einem future aufgerufen wird, das keinen Shared State referenziert (obwohl Implementierungen dazu angehalten werden, in diesem Fall std::future_error mit der Angabe no_state auszulösen). Es ist zulässig, von einem Future-Objekt zu verschieben, für das valid() false ist.
Inhalt |
[edit] Parameter
(keine)
[edit] Rückgabewert
true, wenn *this einen Shared State referenziert, andernfalls false.
[edit] Beispiel
#include <future> #include <iostream> int main() { std::promise<void> p; std::future<void> f = p.get_future(); std::cout << std::boolalpha; std::cout << f.valid() << '\n'; p.set_value(); std::cout << f.valid() << '\n'; f.get(); std::cout << f.valid() << '\n'; }
Ausgabe
true true false
[edit] Siehe auch
| wartet, bis das Ergebnis verfügbar ist (public member function) |