promise::set_value_at_thread_exit メソッド
アトミックにこの promise オブジェクトの結果として値を格納します。
void promise::set_value_at_thread_exit(const Ty& Val);
void promise::set_value_at_thread_exit(Ty&& Val);
void promise<Ty&>::set_value_at_thread_exit(Ty& Val);
void promise<void>::set_value_at_thread_exit();
パラメーター
- Val
結果として格納される値。
解説
約束オブジェクトが関連付けられた非同期状態ではない場合、このメソッドは no_state のエラー コードを持つ future_error をスローします。
set_exception、set_exception_at_thread_exit、set_value、または set_value_at_thread_exit が同じ関連付けられた非同期状態の promise オブジェクトに対して呼び出されている場合、このメソッドは promise_already_satisfied のエラー コードを持つ future_error をスローします。
set_value とは対照的に、関連付けられた非同期状態は、現在のスレッドのスレッド ローカルのオブジェクトがすべて破棄されるまでは準備完了に設定されません。 通常、関連付けられた非同期状態に対してブロックされたスレッドは、現在のスレッドが終了するまでブロック解除されません。
最初のメソッドは、Val が関連付けられた非同期状態にコピーされたときにスローされるすべての例外もスローします。
2 番目のメソッドは、Val が関連付けられた非同期状態に移動されたときにスローされるすべての例外もスローします。
部分的特殊化 promise<Ty&> の場合、格納されている値は、事実上 Val への参照です。
特殊化 promise<void> の場合、格納されている値は存在しません。
必要条件
ヘッダー: future
名前空間: std