Namespaces
Variants

C++ standard libraries extensions, version 3

From cppreference.net

Version 3 der C++ Extensions for Library Fundamentals, ISO/IEC TS 19568:2024, definiert die folgenden neuen Komponenten für die C++-Standardbibliothek, zusätzlich zu denen, die in Version 1 und Version 2 definiert sind.

Komponenten, die in C++17/20 zusammengeführt wurden, und die folgenden Komponenten werden in LFTS v3 entfernt:

Scope Guard

Definiert im Header <experimental/scope>
umschließt ein Funktionsobjekt und ruft es beim Verlassen des Gültigkeitsbereichs auf
(Klassentemplate)
umschließt ein Funktionsobjekt und ruft es beim Verlassen des Gültigkeitsbereichs durch eine Exception auf
(Klassentemplate)
umschließt ein Funktionsobjekt und ruft es beim normalen Verlassen des Gültigkeitsbereichs auf
(Klassentemplate)
universeller RAII-Ressourcenhandle-Wrapper
(Klassentemplate)

Feature-Test-Makros

__cpp_lib_experimental_memory_resources
ein Wert von mindestens 201803 zeigt an, dass resource_adaptor unterstützt wird
(Makrokonstante)
Definiert im Header <experimental/functional>
__cpp_lib_experimental_function_polymorphic_allocator
ein Wert von mindestens 202211 zeigt an, dass std:: pmr :: polymorphic_allocator <> verwendet wird für std::experimental::function
(Makrokonstante)
Definiert im Header <experimental/scope>
__cpp_lib_experimental_scope
ein Wert von mindestens 201902 zeigt an, dass die Scope Guards unterstützt werden
(Makrokonstante)

Hinweise

Der Wert von __cpp_lib_experimental_memory_resources wurde in LFTS v3 erhöht, da das Design von resource_adaptor auf std::pmr::memory_resource neu ausgerichtet wurde.