Namespaces
Variants

std::packaged_task<R(Args...)>:: operator()

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void operator ( ) ( ArgTypes... args ) ;
(C++11以降)

保存されたタスクを、あたかも INVOKE<R> ( f, args... ) によって呼び出すかのように実行します。タスクの戻り値、またはスローされた例外は共有状態に保存されます。共有状態は準備完了状態となり、これを待機しているスレッドはすべてブロック解除されます。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - C++関連の用語(Parameters、Return value、Exceptions、Example、Defect reports、See also)は原文のまま保持しました - HTMLタグ、属性、クラス名、IDなどは一切変更していません - 番号付けや構造は完全に保持されています

パラメータ

args - 格納されたタスクの呼び出し時に渡すパラメータ

戻り値

(なし)

例外

std::future_error が以下のエラー条件で発生します:

  • 格納されたタスクは既に呼び出されています。エラーカテゴリは promise_already_satisfied に設定されます。
  • * this は共有状態を持ちません。エラーカテゴリは no_state に設定されます。

不具合報告

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

DR 適用対象 公開時の動作 正しい動作
LWG 2142 C++11 operator ( ) の成功した呼び出しは、
自身と共有状態を共有する std::future または
std::shared_future のメンバ関数呼び出しと同期される
共有状態によって既に提供される同期保証以外に
追加の同期保証はない

関連項目

関数を実行し、現在のスレッドが終了した時点でのみ結果が準備完了となることを保証します
(公開メンバ関数)