Extensions for concurrency
From cppreference.net
<
cpp
|
experimental
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のアトミック版
(クラステンプレート) |