std::shared_future<T>::valid
| bool valid() const noexcept; |
(seit C++11) | |
Prüft, ob der Future auf einen geteilten Zustand verweist.
Dies ist nur für Futures der Fall, die nicht standardmäßig konstruiert oder von ihnen verschoben wurden. Im Gegensatz zu std::future wird der geteilte Zustand von std::shared_future nicht ungültig, wenn get() aufgerufen wird.
Das Verhalten ist undefiniert, wenn eine andere Memberfunktion als der Destruktor, der Kopierzuweisungsoperator, der Zuweisungsoperator für Verschiebung oder valid für ein shared_future aufgerufen wird, das nicht auf einen geteilten Zustand verweist (obwohl Implementierungen ermutigt werden, in diesem Fall std::future_error mit der Angabe no_state auszulösen). Es ist gültig, von einem shared_future-Objekt, für das valid() false ist, zu verschieben oder zu kopieren.
Inhalt |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
true, wenn *this auf einen geteilten Zustand verweist, andernfalls false.
[bearbeiten] Beispiel
#include <future> #include <iostream> int main() { std::promise<void> p; std::shared_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 true
[bearbeiten] Siehe auch
| wartet, bis das Ergebnis verfügbar ist (public member function) |