Namespaces
Variants

C++ standard libraries extensions, version 3

From cppreference.net

C++ライブラリ基盤拡張のバージョン3、ISO/IEC TS 19568:2024は、 バージョン1 および バージョン2 で定義されたコンポーネントに加えて、C++標準ライブラリ向けに以下の新規コンポーネントを定義しています。

C++17/20に統合されたコンポーネントと以下のコンポーネントはLFTS v3で削除されました:

スコープガード

ヘッダーで定義 <experimental/scope>
関数オブジェクトをラップし、スコープ終了時に呼び出す
(クラステンプレート)
関数オブジェクトをラップし、例外によるスコープ終了時に呼び出す
(クラステンプレート)
関数オブジェクトをラップし、正常なスコープ終了時に呼び出す
(クラステンプレート)
ユニバーサルRAIIリソースハンドルラッパー
(クラステンプレート)

機能テストマクロ

定義済みヘッダー <experimental/memory_resource>
__cpp_lib_experimental_memory_resources
少なくとも 201803 の値は resource_adaptor がサポートされていることを示す
(マクロ定数)
定義済みヘッダー <experimental/functional>
__cpp_lib_experimental_function_polymorphic_allocator
少なくとも 202211 の値は std:: pmr :: polymorphic_allocator <> std::experimental::function で使用されることを示す
(マクロ定数)
定義済みヘッダー <experimental/scope>
__cpp_lib_experimental_scope
少なくとも 201902 の値はスコープガードがサポートされていることを示す
(マクロ定数)

注記

__cpp_lib_experimental_memory_resources の値はLFTS v3で増加されました。これは resource_adaptor の設計が std::pmr::memory_resource に基づいて再構築されたためです。