Namespaces
Variants

C++ standard libraries extensions, version 3

From cppreference.net

La version 3 des Extensions C++ pour les fondamentaux de la bibliothèque, ISO/IEC TS 19568:2024, définit les nouveaux composants suivants pour la bibliothèque standard C++, en plus de ceux définis dans la version 1 et la version 2 .

Les composants fusionnés dans C++17/20 et les composants suivants sont supprimés dans LFTS v3 :

Garde de portée

Défini dans l'en-tête <experimental/scope>
encapsule un objet fonction et l'invoque à la sortie de la portée
(modèle de classe)
encapsule un objet fonction et l'invoque à la sortie de la portée via une exception
(modèle de classe)
encapsule un objet fonction et l'invoque à la sortie normale de la portée
(modèle de classe)
gestionnaire de ressource RAII universel
(modèle de classe)

Macros de test de fonctionnalités

Défini dans l'en-tête <experimental/memory_resource>
__cpp_lib_experimental_memory_resources
une valeur d'au moins 201803 indique que resource_adaptor est pris en charge
(constante de macro)
Défini dans l'en-tête <experimental/functional>
__cpp_lib_experimental_function_polymorphic_allocator
une valeur d'au moins 202211 indique que std:: pmr :: polymorphic_allocator <> est utilisé pour std::experimental::function
(constante de macro)
Défini dans l'en-tête <experimental/scope>
__cpp_lib_experimental_scope
une valeur d'au moins 201902 indique que les gardes de portée sont pris en charge
(constante de macro)

Notes

La valeur de __cpp_lib_experimental_memory_resources a été augmentée dans LFTS v3, car la conception de resource_adaptor est rebasée sur std::pmr::memory_resource .