名前空間
変種
操作

並列処理のための拡張

From cppreference.com
 
 
実験的
Technical Specification
ファイルシステムライブラリ (filesystem TS)
ライブラリ基本 (library fundamentals TS)
ライブラリ基本TS v2 (library fundamentals TS v2)
ライブラリ基本 3 (library fundamentals TS v3)
並列処理のための拡張 (並列処理 TS)
並列化拡張 2 (parallelism TS v2)
並行処理拡張 (concurrency TS)
並行処理拡張 2 (concurrency TS v2)
コンセプト (concepts TS)
Ranges (ranges TS)
リフレクション (reflection TS)
数学特殊関数 (special functions TR)
実験的 (非TS)
パターンマッチ
線形代数
std::execution
契約プログラミング
2Dグラフィックス
 
 

C++ 並列処理のための拡張、ISO/IEC TS 19570:2015 は、C++ 標準ライブラリの以下の新しいコンポーネントを定義しています。

目次

[編集] 実行ポリシー

並列処理 TS は、3つの実行ポリシーを記述しています: sequential (逐次)parallel (並列)、および parallel+vector (並列+ベクトル) であり、対応する実行ポリシー型とオブジェクトを提供します。ユーザーは、対応する型の実行ポリシーオブジェクトを用いて並列アルゴリズムを呼び出すことで静的に実行ポリシーを選択することも、型消去の execution_policy クラスを使用することで動的に選択することもできます。

実装は、拡張として追加の実行ポリシーを定義してもよいです。実装定義の型の実行ポリシーオブジェクトを用いて呼び出された並列アルゴリズムのセマンティクスは、実装定義です。

ヘッダー <experimental/execution_policy> で定義
実行ポリシー型
(クラス)
グローバル実行ポリシーオブジェクト
(定数)
動的実行ポリシー
(クラス)
クラスが実行ポリシーを表すかどうかをテストする
(クラステンプレート)

[編集] 例外リスト

ヘッダー <experimental/exception_list> で定義されています
並列実行中に発生した例外
(クラス)

[編集] 既存アルゴリズムの並列化バージョン

TS は、<algorithm>、<numeric>、<memory> の以下の69のアルゴリズムの 並列化バージョン を提供します。

並列化バージョンが提供される標準ライブラリアルゴリズム

[編集] 新規アルゴリズム

ヘッダ <experimental/algorithm> で定義
std::for_each に似ていますが、void を返します。
(関数テンプレート)
シーケンスの最初の n 個の要素に関数オブジェクトを適用します。
(関数テンプレート)
ヘッダ <experimental/numeric> で定義
(並列処理 TS)
std::accumulate に似ているが、順序不同
(関数テンプレート) [編集]
std::partial_sum に似ていますが、i 番目の合計から i 番目の入力要素を除外します。
(関数テンプレート)
std::partial_sum に似ていますが、i 番目の合計に i 番目の入力要素を含めます。
(関数テンプレート)
(並列処理 TS)
ファンクタを適用し、順不同で reduce を行います。
(関数テンプレート) [編集]
ファンクタを適用し、exclusive scan を計算します。
(関数テンプレート)
ファンクタを適用し、inclusive scan を計算します。
(関数テンプレート)
English 日本語 中文(简体) 中文(繁體)