名前空間
変種
操作

C++標準ライブラリ拡張 バージョン2

From cppreference.com
 
 
実験的
Technical Specification
ファイルシステムライブラリ (filesystem TS)
ライブラリ基本 (library fundamentals TS)
ライブラリ基本 2 (library fundamentals TS v2)
ライブラリ基本 3 (library fundamentals TS v3)
並列化拡張 (parallelism 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++ライブラリ基本拡張 バージョン2 (ISO/IEC TS 19568:2017) では、バージョン1で定義されたものに加えて、C++標準ライブラリに以下の新しいコンポーネントを定義しています。

目次

[編集] C++ detection idiom

ヘッダ <experimental/type_traits> で定義
テンプレートIDが有効かどうかを検出するエイリアステンプレート
(エイリアステンプレート)
失敗時にdetected_tが返すクラス型
(クラス)

[編集] ポインタ風オブジェクトのためのconst伝播ラッパー

ヘッダ <experimental/propagate_const> で定義
ポインタ風オブジェクトのためのconst伝播ラッパー
(クラステンプレート)

[編集] 所有権を持たないポインタ

ヘッダ <experimental/memory> で定義
所有権を持たないポインタを表すクラス
(クラステンプレート)

[編集] std::arrayの生成

ヘッダ <experimental/array> で定義
(Library Fundamentals TS v2)
サイズと、任意で要素型を引数から推論してstd::arrayオブジェクトを生成する
(関数テンプレート) [編集]

[編集] ostream_joiner

ヘッダ <experimental/iterator> で定義
連続する要素を出力ストリームに書き込み、隣接する要素を区切り文字で区切る出力イテレータ
(クラステンプレート)

[編集] 単純な乱数生成機能

std::default_random_engineスレッド毎エンジンが、予測不可能な状態で初期化され、各スレッドで維持され、以下の関数で使用される。

ヘッダ <experimental/random> で定義
指定された範囲のランダムな整数を生成する
(関数テンプレート) [編集]
スレッド毎の乱数エンジンを再シードする
(関数) [編集]
ヘッダ <experimental/algorithm> で定義
シーケンスからn個のランダムな要素を選択する
(関数テンプレート)
範囲内の要素をランダムに並べ替える
(関数テンプレート)

[編集] 機能テストマクロ

ヘッダ <experimental/type_traits> で定義
__cpp_lib_experimental_logical_traits
値が201511以上の場合、論理演算子型特性がサポートされていることを示す
(マクロ定数)
__cpp_lib_experimental_detect
値が201505以上の場合、detection idiomがサポートされていることを示す
(マクロ定数)
ヘッダ <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以上の場合、gcdlcmがサポートされていることを示す
(マクロ定数)
ヘッダ <experimental/random> で定義
__cpp_lib_experimental_randint
値が201511以上の場合、randintと関連関数がサポートされていることを示す
(マクロ定数)
ヘッダ <experimental/source_location> で定義
__cpp_lib_experimental_source_location
値が201505以上の場合、source_locationがサポートされていることを示す
(マクロ定数)

[編集] C++17にマージ

ライブラリ基本 v2 の以下のコンポーネントは、C++17標準に採択されました。

ヘッダ <experimental/type_traits> で定義
voidのための可変長エイリアステンプレート
(エイリアステンプレート)
ヘッダ <experimental/type_traits> で定義
可変長論理ANDメタ関数
(クラステンプレート)
可変長論理ORメタ関数
(クラステンプレート)
論理NOTメタ関数
(クラステンプレート)
ヘッダ <experimental/functional> で定義
保持する関数オブジェクトの結果の補数を返す関数オブジェクトを作成する
(関数テンプレート) [編集]
ヘッダ <experimental/numeric> で定義
2つの整数の最大公約数を返すconstexpr関数テンプレート
(関数テンプレート) [編集]
2つの整数の最小公倍数を返すconstexpr関数テンプレート
(関数テンプレート) [編集]

[編集] C++20にマージ

ライブラリ基本 v2 の以下のコンポーネントは、C++20標準に採択されました。

[編集] 統一的なコンテナ要素の削除

ヘッダ <experimental/string> で定義
std::basic_stringから特定の値に等しいすべての要素を削除する
(関数テンプレート)
std::basic_stringから述語を満たすすべての要素を削除する
(関数テンプレート)
ヘッダ <experimental/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から述語を満たすすべての要素を削除する
(関数テンプレート)

[編集] ソースコード情報の取得

ヘッダ <experimental/source_location> で定義
ファイル名、行番号、関数名などのソースコードに関する情報を表すクラス
(クラス)

[編集] std::arrayへの変換

ヘッダ <experimental/array> で定義
組み込み配列からstd::arrayオブジェクトを生成する
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)