Namespaces
Variants

Extensions for concurrency

From cppreference.net

C++並行処理拡張機能、ISO/IEC TS 19571:2016は、C++標準ライブラリ向けに以下の新コンポーネントを定義しています:

目次

std::futureの継続とその他の拡張

定義ヘッダ <experimental/future>
(concurrency TS)
継続処理とその他の機能で強化された std::future のバージョン
(クラステンプレート)
(concurrency TS)
継続処理とその他の機能で強化された std::shared_future のバージョン
(クラステンプレート)
(concurrency TS)
std::experimental::future を使用する std::promise の修正版
(クラステンプレート)
(concurrency TS)
std::experimental::future を使用する std::packaged_task の修正版
(クラステンプレート)
(concurrency TS)
指定されたすべてのfutureまたは shared_futures が準備完了状態になったときに準備完了となるfutureを生成する
(関数テンプレート)
(concurrency TS)
指定されたfuturesまたはshared_futuresの少なくとも1つが準備完了状態になったときに準備完了となるfutureを生成する
(関数テンプレート)
(concurrency TS)
即時に準備完了となり、指定された値を保持するfutureを生成する
(関数テンプレート)
(concurrency TS)
即時に準備完了となり、指定された例外を保持するfutureを生成する
(関数テンプレート)

機能テストマクロ

定義済みヘッダ <experimental/future>
__cpp_lib_experimental_future_continuations
少なくとも 201505 の値は、future::thenおよびその他の拡張機能がサポートされていることを示す
(マクロ定数)
定義済みヘッダ <experimental/latch>
__cpp_lib_experimental_latch
少なくとも 201505 の値は、latch型がサポートされていることを示す
(マクロ定数)
定義済みヘッダ <experimental/barrier>
__cpp_lib_experimental_barrier
少なくとも 201505 の値は、barrier型がサポートされていることを示す
(マクロ定数)
定義済みヘッダ <experimental/atomic>
__cpp_lib_experimental_atomic_smart_pointers
少なくとも 201505 の値は、アトミックスマートポインタがサポートされていることを示す
(マクロ定数)

C++20に統合

Concurrency TSの以下のコンポーネントがC++20標準に採用されました。

ラッチとバリア

定義ヘッダー <experimental/latch>
(concurrency TS)
単回使用スレッドバリア
(クラス)
定義ヘッダー <experimental/barrier>
(concurrency TS)
再利用可能スレッドバリア
(クラス)
(concurrency TS)
完了時の動作をカスタマイズ可能な再利用可能スレッドバリア
(クラス)

アトミックスマートポインタ

これらのクラステンプレートは、shared_ptrの atomic関数オーバーロード を置き換えます

ヘッダーで定義 <experimental/atomic>
(concurrency TS)
std::shared_ptrのアトミック版
(クラステンプレート)
(concurrency TS)
std::weak_ptrのアトミック版
(クラステンプレート)