std::packaged_task<R(Args...)>::operator()
From cppreference.com
< cpp | thread | packaged task
| void operator()( ArgTypes... args ); |
(C++11以降) | |
格納されたタスクをINVOKE<R>(f, args...) のように呼び出します。ここで f は格納されたタスクです。タスクの戻り値またはスローされた例外は共有状態に格納されます。共有状態が準備され、それのために待機しているスレッドがブロック解除されます。
目次 |
[編集] パラメータ
| args | - | 格納されたタスクの呼び出しに渡されるパラメータ |
[編集] 戻り値
(なし)
[編集] 例外
std::future_error を以下のエラー条件でスローします。
- 格納されたタスクは既に呼び出されています。エラーカテゴリは promise_already_satisfied に設定されます。
- *this に共有状態がありません。エラーカテゴリは no_state に設定されます。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 2142 | C++11 | operator() の成功した呼び出しは、 std::future または std::shared_future のいずれかのメンバ関数(*this と共有状態を共有するもの)の呼び出しと同期されます。 |
追加の同期は 共有状態によって既に提供されているもの以外に 保証されません。 |
[編集] 関連項目
| 現在のスレッドが終了するまで結果を準備しない関数を実行します。 (public member function) |