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