Namespaces
Variants

std::experimental::future<T>:: future

From cppreference.net

future ( ) noexcept ;
(1)
future ( std:: experimental :: future < T > && f ) noexcept ;
(2)
future ( const std:: experimental :: future < T > & ) = delete ;
(3)
(4)
1) デフォルトコンストラクタ。共有状態を参照しない空の future オブジェクトを構築します。
2) future オブジェクトを構築し、 f が保持する共有状態があれば転送します。構築後、 f. valid ( ) false になります。
3) コピーコンストラクタは削除されています。 future はコピーできません。
4) アンラップコンストラクタ。共有状態から future オブジェクトを構築する。事前に other が参照する共有状態が存在する場合、それを使用する。この呼び出し前に other. valid ( ) == false の場合、構築された future オブジェクトは空となる。それ以外の場合、結果の future オブジェクトは以下のいずれかの条件でready状態となる:
  • other other. get ( ) の両方がready状態の場合。 other. get ( ) からの値または例外が、結果の future オブジェクトに関連付けられた共有状態に格納される。
  • other がready状態だが、 other. get ( ) が無効な場合。 std::future_error 型の例外(エラー条件 std::future_errc::broken_promise )が、結果の future オブジェクトに関連付けられた共有状態に格納される。
このコンストラクタが戻った後、 valid ( ) はこの呼び出し前の other. valid ( ) の値と等しくなり、 other. valid ( ) == false となります。


目次

パラメータ

f - 初期化に使用する別のfutureオブジェクト
other - アンラップする std::experimental::future オブジェクト

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 2697 Concurrency TS アンラップコンストラクタの動作が無効な future の場合に不明確 空の future を構築

関連項目

futureオブジェクトを構築する
( std::future<T> の公開メンバ関数)