C++ standard libraries extensions, version 2
From cppreference.net
<
cpp
|
experimental
C++ Library Fundamentals TS バージョン2、ISO/IEC TS 19568:2017では、 バージョン1 で定義されたコンポーネントに加えて、以下の新しいコンポーネントがC++標準ライブラリ向けに定義されています:
目次 |
C++ 検出イディオム
|
定義ヘッダー
<experimental/type_traits>
|
|
|
テンプレートIDが適正に形成されているかどうかを検出する
エイリアステンプレート (エイリアステンプレート) |
|
|
detected_t
が失敗時に返すクラス型
(クラス) |
|
ポインタライクオブジェクトのためのconst伝播ラッパー
|
定義済みヘッダー
<experimental/propagate_const>
|
|
|
ポインタライクなオブジェクトのためのconst伝播ラッパー
(クラステンプレート) |
|
非所有ポインタ
|
定義ヘッダー
<experimental/memory>
|
|
|
所有権を持たないポインタを表すクラス
(クラステンプレート) |
|
std::array
の作成
|
ヘッダーで定義
<experimental/array>
|
|
|
(ライブラリ基盤 TS v2)
|
引数からサイズとオプションで要素型が推論される
std::array
オブジェクトを作成する
(関数テンプレート) |
ostream_joiner
|
定義済みヘッダー
<experimental/iterator>
|
|
|
隣接する要素を区切り文字で分離しながら、連続する要素を出力ストリームに書き込む出力イテレータ
(クラステンプレート) |
|
簡易乱数生成機能
各スレッドに対して、予測不可能な状態で初期化された型 std::default_random_engine の per-thread engine が維持され、以下の関数で使用されます。
|
ヘッダーで定義
<experimental/random>
|
|
|
指定された範囲のランダムな整数を生成する
(関数テンプレート) |
|
|
スレッドごとの乱数エンジンを再シードする
(関数) |
|
|
ヘッダーで定義
<experimental/algorithm>
|
|
|
シーケンスからn個のランダムな要素を選択する
(関数テンプレート) |
|
|
範囲内の要素をランダムに並べ替える
(関数テンプレート) |
|
機能テストマクロ
|
定義済みヘッダー
<experimental/type_traits>
|
|
|
__cpp_lib_experimental_logical_traits
|
少なくとも
201511
の値は、論理演算子型特性がサポートされていることを示す
(マクロ定数) |
|
__cpp_lib_experimental_detect
|
少なくとも
201505
の値は、検出イディオムがサポートされていることを示す
(マクロ定数) |
|
定義済みヘッダー
<experimental/propagate_const>
|
|
|
__cpp_lib_experimental_propagate_const
|
少なくとも
201505
の値は、
propagate_const
がサポートされていることを示す
(マクロ定数) |
|
定義済みヘッダー
<experimental/functional>
|
|
|
__cpp_lib_experimental_not_fn
|
少なくとも
201406
の値は、
not_fn
がサポートされていることを示す
(マクロ定数) |
|
定義済みヘッダー
<experimental/memory>
|
|
|
__cpp_lib_experimental_observer_ptr
|
少なくとも
201411
の値は、
observer_ptr
がサポートされていることを示す
(マクロ定数) |
|
定義済みヘッダー
<experimental/array>
|
|
|
__cpp_lib_experimental_make_array
|
少なくとも
201505
の値は、
make_array
がサポートされていることを示す
(マクロ定数) |
|
定義済みヘッダー
<experimental/iterator>
|
|
|
__cpp_lib_experimental_ostream_joiner
|
少なくとも
201411
の値は、
ostream_joiner
がサポートされていることを示す
(マクロ定数) |
|
定義済みヘッダー
<experimental/vector>
|
|
|
__cpp_lib_experimental_erase_if
|
少なくとも
201411
の値は、統一コンテナ消去がサポートされていることを示す
(マクロ定数) |
|
定義済みヘッダー
<experimental/numeric>
|
|
|
__cpp_lib_experimental_gcd_lcm
|
少なくとも
201411
の値は、
gcd
と
lcm
がサポートされていることを示す
(マクロ定数) |
|
定義済みヘッダー
<experimental/random>
|
|
|
__cpp_lib_experimental_randint
|
少なくとも
201511
の値は、
randint
と関連関数がサポートされていることを示す
(マクロ定数) |
|
定義済みヘッダー
<experimental/source_location>
|
|
|
__cpp_lib_experimental_source_location
|
少なくとも
201505
の値は、
source_location
がサポートされていることを示す
(マクロ定数) |
C++17にマージ済み
以下のライブラリ fundamentals v2 コンポーネントは C++17 標準に採用されました。
void
の可変長エイリアステンプレート
(エイリアステンプレート) |
|
|
可変長論理ANDメタ関数
(クラステンプレート) |
|
|
可変長論理ORメタ関数
(クラステンプレート) |
|
|
論理NOTメタ関数
(クラステンプレート) |
|
|
保持する関数オブジェクトの結果の補数を返す関数オブジェクトを作成する
(関数テンプレート) |
|
|
定義ヘッダ
<experimental/numeric>
|
|
constexpr
2つの整数の最大公約数を返す関数テンプレート
(関数テンプレート) |
|
constexpr
2つの整数の最小公倍数を返す関数テンプレート
(関数テンプレート) |
|
C++20にマージされました
ライブラリ基盤仕様 v2 の以下のコンポーネントが C++20 標準に採用されました。
統一コンテナ消去
|
ヘッダーで定義
<experimental/string>
|
|
|
std::basic_stringから特定の値に等しいすべての要素を削除する
std::basic_string
(関数テンプレート) |
|
|
述語を満たすすべての要素を
std::basic_string
から削除する
(関数テンプレート) |
|
|
定義済みヘッダー
<experimental/deque>
|
|
|
std::dequeから特定の値に等しいすべての要素を削除する
std::deque
(関数テンプレート) |
|
|
述語を満たすすべての要素を
std::deque
から削除する
(関数テンプレート) |
|
|
ヘッダーで定義
<experimental/vector>
|
|
|
特定の値に等しいすべての要素を
std::vector
から削除する
(関数テンプレート) |
|
|
述語を満たすすべての要素を
std::vector
から削除する
(関数テンプレート) |
|
|
ヘッダーで定義
<experimental/forward_list>
|
|
|
特定の値に等しい全ての要素を
std::forward_list
から削除する
(関数テンプレート) |
|
|
述語を満たすすべての要素を
std::forward_list
から削除する
(関数テンプレート) |
|
|
ヘッダーで定義
<experimental/list>
|
|
|
特定の値に等しい全ての要素を
std::list
から削除する
(関数テンプレート) |
|
|
述語を満たすすべての要素を
std::list
から削除する
(関数テンプレート) |
|
|
ヘッダーで定義
<experimental/map>
|
|
|
述語を満たすすべての要素を
std::map
から削除する
(関数テンプレート) |
|
|
std::multimap
から述語を満たすすべての要素を削除する
(関数テンプレート) |
|
|
ヘッダーで定義
<experimental/set>
|
|
|
述語を満たすすべての要素を
std::set
から削除する
(関数テンプレート) |
|
|
述語を満たすすべての要素を
std::multiset
から削除する
(関数テンプレート) |
|
|
ヘッダーで定義
<experimental/unordered_map>
|
|
|
述語を満たすすべての要素を
std::unordered_map
から削除する
(関数テンプレート) |
|
|
述語を満たすすべての要素を
std::unordered_multimap
から削除する
(関数テンプレート) |
|
|
ヘッダーで定義
<experimental/unordered_set>
|
|
|
述語を満たすすべての要素を
std::unordered_set
から削除する
(関数テンプレート) |
|
|
述語を満たすすべての要素を
std::unordered_multiset
から削除する
(関数テンプレート) |
|
ソースコード情報キャプチャ
|
ファイル名、行番号、関数名などのソースコード情報を表すクラス
(クラス) |
|
std::array
変換
|
ヘッダーで定義
<experimental/array>
|
|
|
組み込み配列から
std::array
オブジェクトを作成する
(関数テンプレート) |
|