名前空間
変種
操作

C++標準ライブラリ拡張

From cppreference.com
 
 
実験的
Technical Specification
ファイルシステムライブラリ (filesystem TS)
ライブラリ基本 (ライブラリ基本TS)
ライブラリ基本TS v2 (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++ Extensions for Library Fundamentals Version 1 (ISO/IEC TS 19568:2015) は、C++標準ライブラリに以下の新しいコンポーネントを定義しています。

目次

[編集] C++17への採択が見送られた機能

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以上の場合、invocation型特性がサポートされていることを示す
(マクロ定数)
ヘッダ <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に採択されました。

[編集] optionalオブジェクト

ヘッダ<experimental/optional>で定義
optionalオブジェクトを表すクラステンプレート
(クラステンプレート)

[編集] anyクラス

ヘッダ<experimental/any>で定義
任意の型の単一の値を保持するための型安全なコンテナ
(クラス)

[編集] string_view

ヘッダ<experimental/string_view>で定義
所有権を持たない文字列への参照
(クラステンプレート)

[編集] 型消去された多相アロケータ

[編集] 多相アロケータとメモリリソース

このセクションのエンティティはstd::experimental::pmr名前空間で宣言されます。

ヘッダー <experimental/memory_resource> で定義
メモリリソースをカプセル化するクラスのための抽象インターフェース
(クラス)
異なるブロックサイズのプールでメモリ割り当てを管理するための、スレッドセーフなmemory_resource
(クラス) [編集]
異なるブロックサイズのプールでメモリ割り当てを管理するための、スレッドセーフではないmemory_resource
(クラス) [編集]
割り当てたメモリをリソースが破棄されるときにのみ解放する、特殊なmemory_resource
(クラス)
構築時に与えられたmemory_resourceに基づいて実行時多相性をサポートするアロケータ
(クラステンプレート)
メモリの確保と解放にグローバルなoperator newoperator deleteを使用する、静的なプログラムワイドなmemory_resourceを返す
(関数) [編集]
割り当てを一切行わない静的なmemory_resourceを返す
(関数) [編集]
デフォルトのmemory_resourceを取得する
(関数) [編集]
デフォルトのmemory_resourceを設定する
(関数) [編集]

[編集] 多相アロケータを使用するコンテナの便利な別名

多相アロケータを使用するコンテナのための便利な別名とエイリアステンプレートが、std::experimental::pmr名前空間で以下の標準ライブラリのクラステンプレートに対して提供されます。

便利な別名が提供されるコンテナテンプレートのリスト

[編集] shared_ptrの配列サポート

ヘッダ <experimental/memory> で定義
Class 説明
配列をサポートするstd::shared_ptrの修正版
(クラステンプレート)
配列をサポートするstd::weak_ptrの修正版
(クラステンプレート)

[編集] サンプリングおよび検索アルゴリズム

ヘッダ <experimental/algorithm> で定義
シーケンスからn個のランダムな要素を選択する
(関数テンプレート)
シーケンスにSearcherを適用する
(関数テンプレート)
ヘッダ <experimental/functional> で定義
標準C++ライブラリの探索アルゴリズム実装
(クラステンプレート)
default_searcherを作成するためのヘルパー関数
(関数テンプレート)
ボイヤー・ムーア法探索アルゴリズム実装
(クラステンプレート)
boyer_moore_searcherを作成するためのヘルパー関数
(関数テンプレート)
ボイヤー・ムーア・ホースプール法探索アルゴリズム実装
(クラステンプレート)
boyer_moore_horspool_searcherを作成するためのヘルパー関数
(関数テンプレート)

[編集] 汎用ユーティリティ

ヘッダ<experimental/tuple>で定義
引数のタプルに対して関数を呼び出す
(関数テンプレート)

さらに、TSは以下の標準ライブラリの型特性やその他のクラステンプレートに対して、数多くのconstexpr変数テンプレートを提供します。

変数テンプレートが提供される型特性やその他のクラステンプレートのリスト
English 日本語 中文(简体) 中文(繁體)