C++ standard libraries extensions, version 3
From cppreference.com
<
cpp
|
experimental
Version 3 of the C++ Extensions for Library Fundamentals, ISO/IEC TS 19568:2024, defines the following new components for the C++ standard library, in addition to those defined in version 1 and version 2 .
Components merged into C++17/20 and the following components are removed in LFTS v3:
- std::experimental::make_array ,
- std::experimental::erased_type ,
- std::experimental::packaged_task , and
- std::experimental::promise .
Scope guard
Defined in header
<experimental/scope>
|
|
wraps a function object and invokes it on exiting the scope
(class template) |
|
wraps a function object and invokes it on exiting the scope through an exception
(class template) |
|
wraps a function object and invokes it on exiting the scope normally
(class template) |
|
universal RAII resource handle wrapper
(class template) |
Feature test macros
Defined in header
<experimental/memory_resource>
|
|
__cpp_lib_experimental_memory_resources
|
a value of at least
201803
indicates that
resource_adaptor
is supported
(macro constant) |
Defined in header
<experimental/functional>
|
|
__cpp_lib_experimental_function_polymorphic_allocator
|
a value of at least
202211
indicates that
std::
pmr
::
polymorphic_allocator
<>
is used for
std::experimental::function
(macro constant) |
Defined in header
<experimental/scope>
|
|
__cpp_lib_experimental_scope
|
a value of at least
201902
indicates that the scope guards are supported
(macro constant) |
Notes
The value of
__cpp_lib_experimental_memory_resources
has been increased in LFTS v3, because the design of
resource_adaptor
is rebased onto
std::pmr::memory_resource
.