C++ Standardbibliotheks-Erweiterungen, Version 3
Von cppreference.com
< cpp | experimental
Version 3 der C++-Erweiterungen für 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.
In C++17/20 integrierte Komponenten und die folgenden Komponenten, die in LFTS v3 entfernt wurden
- std::experimental::make_array,
- std::experimental::erased_type,
- std::experimental::packaged_task, und
- std::experimental::promise.
[bearbeiten] Scope guard
| Definiert in Header
<experimental/scope> | |
| umschließt ein Funktions-Objekt und ruft es beim Verlassen des Geltungsbereichs auf (Klassenvorlage) | |
| umschließt ein Funktions-Objekt und ruft es beim Verlassen des Geltungsbereichs durch eine Ausnahme auf (Klassenvorlage) | |
| umschließt ein Funktions-Objekt und ruft es beim normalen Verlassen des Geltungsbereichs auf (Klassenvorlage) | |
| universeller RAII-Ressourcen-Handle-Wrapper (Klassenvorlage) | |
[bearbeiten] Feature-Testmakros
| Definiert im Header
<experimental/memory_resource> | |
| __cpp_lib_experimental_memory_resources |
ein Wert von mindestens 201803 zeigt an, dass resource_adaptor unterstützt wird (Makro-Konstante) |
| Definiert im Header
<experimental/functional> | |
| __cpp_lib_experimental_function_polymorphic_allocator |
ein Wert von mindestens 202211 zeigt an, dass std::pmr::polymorphic_allocator<> für std::experimental::function verwendet wird (Makro-Konstante) |
| Definiert in Header
<experimental/scope> | |
| __cpp_lib_experimental_scope |
ein Wert von mindestens 201902 zeigt an, dass die Scope-Guards unterstützt werden (Makro-Konstante) |
[bearbeiten] 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 basiert.