最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

<future>

# future(C++11)

`<future>`ヘッダでは、並行プログラミングのためのデザインパターンのひとつであるFutureパターンに関するクラス・関数を提供する。

`future`はデータの準備ができるまで待機してからデータを読み取る。
`promise`はデータを書き込み、準備ができたことを`future`に通知する。
`packaged_task`は関数の戻り値をデータの書き込みと見なし、関数終了時に`future`に通知する。さらにこのパターンを容易に扱うための`async()`関数を提供する。

名前 | 説明 | 対応バージョン
--- | --- | ---
`future_errc` | `future`のエラー値(enum class) | C++11
`launch` | `async()`関数の実行ポリシー(enum class) | C++11
`future_status` | `future`の状態値(enum class) | C++11
`is_error_code_enum` | `future_errc`をエラーコードとして扱うための特殊化(class template) | C++11
`make_error_code` | `future_errc`から`error_code`を生成する(function) | C++11
`make_error_condition` | `future_errc`から`error_condition`を生成する(function) | C++11
`future_category` | `future_errc`のためのエラーカテゴリを取得する(function) | C++11
`future_error` | `future`のエラーに関する例外クラス(class) | C++11
`promise` | データを書き込み、データの準備ができたことを通知する(class template) | C++11
`future` | データの準備ができるまで待機し、データを読み取る(class template) | C++11
`shared_future` | 共有方式の`future`(class template) | C++11
`packaged_task` | 非同期タスクの管理(class template) | C++11
`async` | 処理の非同期実行(function template) | C++11

## バージョン

### 言語

- C++11