| Technical Specification | ||||
| Filesystem library(filesystem TS) | ||||
| Library fundamentals(library fundamentals TS) | ||||
| Library fundamentals 2(library fundamentals TS v2) | ||||
| Library fundamentals 3(library fundamentals TS v3) | ||||
| Extensions for parallelism(parallelism TS) | ||||
| Extensions for parallelism 2(parallelism TS v2) | ||||
| Extensions for concurrency(concurrency TS) | ||||
| Extensions for concurrency 2(concurrency TS v2) | ||||
| Concepts(concepts TS) | ||||
| Ranges(ranges TS) | ||||
| Reflection(reflection TS) | ||||
| Mathematical special functions(special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
Version 1 of the C++ Extensions for Library Fundamentals, ISO/IEC TS 19568:2015 defines the following new components for the C++ standard library:
Contents |
The following components of ISO/IEC TS 19568:2015 were not selected for inclusion in C++17.
Defined in header <experimental/functional> | |
| a modified version ofstd::function with support for type-erased allocators (class template) | |
Defined in header <experimental/future> | |
| a modified version ofstd::promise with support for type-erased allocators (class template) | |
| a modified version ofstd::packaged_task with support for type-erased allocators (class template) | |
| adapts an allocator into amemory_resource (alias template) |
Defined in header <experimental/utility> | |
| placeholder type for type erasure, such as in allocators (class) | |
Defined in header <experimental/type_traits> | |
| deduce the implied function type of the callable object when called with the given argument types (class template) | |
Defined in header <experimental/optional> | |
__cpp_lib_experimental_optional | a value of at least201411 indicates that the optional type is supported (macro constant) |
Defined in header <experimental/any> | |
__cpp_lib_experimental_any | a value of at least201411 indicates that the any type is supported (macro constant) |
Defined in header <experimental/string_view> | |
__cpp_lib_experimental_string_view | a value of at least201411 indicates that basic_string_view template is supported (macro constant) |
Defined in header <experimental/tuple> | |
__cpp_lib_experimental_apply | a value of at least201402 indicates that the tuple apply() function is supported (macro constant) |
Defined in header <experimental/type_traits> | |
__cpp_lib_experimental_type_trait_variable_templates | a value of at least201402 indicates that variable template type traits are supported (macro constant) |
__cpp_lib_experimental_invocation_type | a value of at least201406 indicates that invocation type traits are supported (macro constant) |
Defined in header <experimental/functional> | |
__cpp_lib_experimental_boyer_moore_searching | a value of at least201411 indicates that additional searching algorithms are supported (macro constant) |
__cpp_lib_experimental_function_erased_allocator | a value of at least201406 indicates that type-erased allocator for std::function is supported (macro constant) |
Defined in header <experimental/future> | |
__cpp_lib_experimental_promise_erased_allocator | a value of at least201406 indicates that type-erased allocator for std::promise is supported (macro constant) |
__cpp_lib_experimental_packaged_task_erased_allocator | a value of at least201406 indicates that type-erased allocator for std::packaged_task is supported (macro constant) |
Defined in header <experimental/memory> | |
__cpp_lib_experimental_shared_ptr_arrays | a value of at least201406 indicates that shared_ptr arrays are supported (macro constant) |
Defined in header <experimental/memory_resource> | |
__cpp_lib_experimental_memory_resources | a value of at least201402 indicates that polymorphic memory resources are supported (macro constant) |
Defined in header <experimental/algorithm> | |
__cpp_lib_experimental_sample | a value of201402 indicates that the sample algorithm is supported (macro constant) |
The following components of ISO/IEC TS 19568:2015 were included into C++17.
Defined in header <experimental/optional> | |
| a class template representingoptional objects (class template) | |
anyDefined in header <experimental/any> | |
| a type-safe container for single values of any type (class) | |
string_viewDefined in header <experimental/string_view> | |
| a non-owning reference to a string (class template) | |
The entities in this section are declared in thestd::experimental::pmr namespace.
Defined in header <experimental/memory_resource> | |
| an abstract interface for classes that encapsulate memory resources (class) | |
| a thread-safememory_resource for managing allocations in pools of different block sizes (class)[edit] | |
| a thread-unsafememory_resource for managing allocations in pools of different block sizes (class)[edit] | |
| a special-purposememory_resource that releases the allocated memory only when the resource is destroyed (class) | |
| an allocator that supports run-time polymorphism based on thememory_resource it is constructed with (class template) | |
returns a static program-widememory_resource that uses the globaloperator new andoperator delete to allocate and deallocate memory(function)[edit] | |
returns a staticmemory_resource that performs no allocation(function)[edit] | |
gets the defaultmemory_resource(function)[edit] | |
sets the defaultmemory_resource(function)[edit] | |
Convenience aliases and alias templates for containers using polymorphic allocators are provided in thestd::experimental::pmr namespace for the following class templates in the standard library:
| List of container templates for which convenience aliases are provided |
|---|
shared_ptrDefined in header <experimental/memory> | |
| Class | Description |
| a modified version ofstd::shared_ptr that supports arrays (class template) | |
| a modified version ofstd::weak_ptr that supports arrays (class template) | |
Defined in header <experimental/algorithm> | |
| selects n random elements from a sequence (function template) | |
| applies a Searcher to a sequence (function template) | |
Defined in header <experimental/functional> | |
| standard C++ library search algorithm implementation (class template) | |
| helper function to create a default_searcher (function template) | |
| Boyer-Moore search algorithm implementation (class template) | |
| helper function to create a boyer_moore_searcher (function template) | |
| Boyer-Moore-Horspool search algorithm implementation (class template) | |
| helper function to create a boyer_moore_horspool_searcher (function template) | |
Defined in header <experimental/tuple> | |
| calls a function to a tuple of arguments (function template) | |
In addition, the TS providesnumerousconstexpr variable templates for the following type traits and other class templates in the standard library: