std::shared_future<T>::valid
From cppreference.com
< cpp | スレッド | shared_future
| bool valid() const noexcept; |
(C++11以降) | |
共有状態を参照しているかどうかを確認します。
これは、デフォルトコンストラクタで作成されなかったか、ムーブされていなかったfutureの場合のみです。 std::futureとは異なり、std::shared_futureの共有状態はget()が呼び出されても無効になりません。
共有状態を参照していないshared_future に対して、デストラクタ、コピー代入演算子、ムーブ代入演算子、またはvalid以外のメンバー関数が呼び出された場合、動作は未定義です(ただし、実装はこの場合no_stateを示すstd::future_errorをスローすることが推奨されます)。valid()がfalseであるshared_futureオブジェクトからムーブまたはコピーすることは有効です。
目次 |
[編集] パラメータ
(なし)
[編集] 戻り値
true: *thisが共有状態を参照している場合、それ以外の場合はfalse。
[編集] 例
このコードを実行
#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'; }
出力
true true true
[編集] 関連項目
| 結果が利用可能になるまで待機します。 (public member function) |