C++ 標準ライブラリ拡張
提供: cppreference.com
< cpp | experimental
ライブラリ基礎のための C++ 拡張バージョン1、 ISO/IEC TS 19568:2015 は、 C++ 標準ライブラリのための以下の新しいコンポーネントを定義します。
ISO/IEC TS 19568:2015 の以下のコンポーネントは C++17 に含める対象に選択されませんでした。
目次 |
[編集] 型消去されたアロケータをサポートする既存のクラスの修正版
| ヘッダ
<experimental/functional> で定義 | |
| 型消去されたアロケータをサポートする std::function の修正版 (クラステンプレート) | |
| ヘッダ
<experimental/future> で定義 | |
| 型消去されたアロケータをサポートする std::promise の修正版 (クラステンプレート) | |
| 型消去されたアロケータをサポートする std::packaged_task の修正版 (クラステンプレート) | |
[編集] 多相アロケータとメモリリソース
| アロケータを memory_resource に適合させます (エイリアステンプレート) |
[編集] 汎用ユーティリティ
| ヘッダ
<experimental/utility> で定義 | |
| アロケータなどにおける型消去のためのプレースホルダ型 (クラス) | |
| ヘッダ
<experimental/type_traits> で定義 | |
| 指定された引数型で呼ばれたときの呼び出し可能オブジェクトの暗示される関数型を推定します (クラステンプレート) | |
[編集] 機能テストマクロ
| ヘッダ
<experimental/optional> で定義 | |
| __cpp_lib_experimental_optional |
201411 以上の値であれば、 optional 型がサポートされることを表します (マクロ定数) |
| ヘッダ
<experimental/any> で定義 | |
| __cpp_lib_experimental_any |
201411 以上の値であれば、 any 型がサポートされることを表します (マクロ定数) |
| ヘッダ
<experimental/string_view> で定義 | |
| __cpp_lib_experimental_string_view |
201411 以上の値であれば、 basic_string_view テンプレートがサポートされることを表します (マクロ定数) |
| ヘッダ
<experimental/tuple> で定義 | |
| __cpp_lib_experimental_apply |
201402 以上の値であれば、タプルの apply() 関数がサポートされることを表します (マクロ定数) |
| ヘッダ
<experimental/type_traits> で定義 | |
| __cpp_lib_experimental_type_trait_variable_templates |
201402 以上の値であれば、変数テンプレートの型特性がサポートされることを表します (マクロ定数) |
| __cpp_lib_experimental_invocation_type |
201406 以上の値であれば、呼び出し型特性がサポートされることを表します (マクロ定数) |
| ヘッダ
<experimental/functional> で定義 | |
| __cpp_lib_experimental_boyer_moore_searching |
201411 以上の値であれば、追加の検索アルゴリズムがサポートされることを表します (マクロ定数) |
| __cpp_lib_experimental_function_erased_allocator |
201406 以上の値であれば、 std::function に対して型消去されたアロケータがサポートされることを表します (マクロ定数) |
| ヘッダ
<experimental/future> で定義 | |
| __cpp_lib_experimental_promise_erased_allocator |
201406 以上の値であれば、 std::promise に対して型消去されたアロケータがサポートされることを表します (マクロ定数) |
| __cpp_lib_experimental_packaged_task_erased_allocator |
201406 以上の値であれば、 std::packaged_task に対して型消去されたアロケータがサポートされることを表します (マクロ定数) |
| ヘッダ
<experimental/memory> で定義 | |
| __cpp_lib_experimental_shared_ptr_arrays |
201406 以上の値であれば、 shared_ptr の配列がサポートされることを表します (マクロ定数) |
| ヘッダ
<experimental/memory_resource> で定義 | |
| __cpp_lib_experimental_memory_resources |
201402 以上の値であれば、多相メモリリソースがサポートされることを表します (マクロ定数) |
| ヘッダ
<experimental/algorithm> で定義 | |
| __cpp_lib_experimental_sample |
201402 以上の値であれば、 sample アルゴリズムがサポートされることを表します (マクロ定数) |
[編集] C++17 にマージされたもの
ISO/IEC TS 19568:2015 の以下のコンポーネントは C++17 に含められました。
[編集] オプショナルなオブジェクト
| ヘッダ
<experimental/optional> で定義 | |
| オプショナルなオブジェクトを表すクラステンプレート (クラステンプレート) | |
[編集] クラス any
| ヘッダ
<experimental/any> で定義 | |
| 任意の型の単一の値のための型安全なコンテナ (クラス) | |
[編集] string_view
| ヘッダ
<experimental/string_view> で定義 | |
| 文字列への非所有参照 (クラステンプレート) | |
[編集] 型消去されたアロケータと多相アロケータ
[編集] 多相アロケータとメモリリソース
この節のエンティティは std::experimental::pmr 名前空間で宣言されています。
| ヘッダ
<experimental/memory_resource> で定義 | |
| メモリリソースをカプセル化するクラスのための抽象インタフェース (クラス) | |
| 様々なブロックサイズのプールでメモリ確保を管理するスレッドセーフな memory_resource (クラス) | |
| 様々なブロックサイズのプールでメモリ確保を管理するスレッドセーフでない memory_resource (クラス) | |
| リソースが破棄されるときにのみ確保されたメモリを解放する特殊な目的の memory_resource (クラス) | |
| 構築時に指定された memory_resource をベースとした実行時ポリモーフィズムをサポートするアロケータ (クラステンプレート) | |
グローバルな operator new と operator delete を使用してメモリの確保および解放を行う static でプログラムワイドな memory_resource を返します (関数) | |
確保を行わない static な memory_resource を返します (関数) | |
デフォルトの memory_resource を取得します (関数) | |
デフォルトの memory_resource を設定します (関数) | |
[編集] 多相アロケータを用いるコンテナのための便利なエイリアス
多相アロケータを用いるコンテナのための便利なエイリアスとエイリアステンプレートが標準ライブラリの以下のクラステンプレートに対して std::experimental::pmr 名前空間で提供されます。
| 便利なエイリアスが提供されるコンテナテンプレートの一覧 |
|---|
[編集]
| ヘッダ
<experimental/memory> で定義 | |
| クラス | 説明 |
| 配列をサポートする std::shared_ptr の修正版 (クラステンプレート) | |
| 配列をサポートする std::weak_ptr の修正版 (クラステンプレート) | |
[編集] 標本化と検索のアルゴリズム
| ヘッダ
<experimental/algorithm> で定義 | |
| シーケンスからランダムな要素を n 個選択します (関数テンプレート) | |
| シーケンスに検索子を適用します (関数テンプレート) | |
| ヘッダ
<experimental/functional> で定義 | |
| 標準 C++ ライブラリの検索アルゴリズムの実装 (クラステンプレート) | |
| default_searcher を作成するためのヘルパー関数 (関数テンプレート) | |
| ボイヤー・ムーア検索アルゴリズムの実装 (クラステンプレート) | |
| boyer_moore_searcher を作成するためのヘルパー関数 (関数テンプレート) | |
| ボイヤー・ムーア・ホースプール検索アルゴリズムの実装 (クラステンプレート) | |
| boyer_moore_horspool_searcher を作成するためのヘルパー関数 (関数テンプレート) | |
[編集] 汎用ユーティリティ
| ヘッダ
<experimental/tuple> で定義 | |
| 引数のタプルを用いて関数を呼びます (関数テンプレート) | |
また、この TS は以下の型特性および標準ライブラリのその他のクラステンプレートに対する多数の constexpr 変数テンプレートを提供します。