| 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 2 of the C++ Extensions for Library Fundamentals, ISO/IEC TS 19568:2017, defines the following new components for the C++ standard library, in addition to those defined inversion 1:
Contents |
Defined in header <experimental/type_traits> | |
| alias templates that detect whether atemplate-id is well-formed (alias template) | |
| class type returned bydetected_t on failure (class) | |
Defined in header <experimental/propagate_const> | |
| a const-propagating wrapper for pointer-like objects (class template) | |
Defined in header <experimental/memory> | |
| a class representing a non-owning pointer (class template) | |
std::array creationDefined in header <experimental/array> | |
(library fundamentals TS v2) | creates astd::array object whose size and optionally element type are deduced from the arguments (function template)[edit] |
ostream_joinerDefined in header <experimental/iterator> | |
| an output iterator that writes successive elements into an output stream, separating adjacent elements with a delimiter (class template) | |
Aper-thread engine of typestd::default_random_engine, initialized to an unpredictable state, is maintained for each thread and used by the functions below.
Defined in header <experimental/random> | |
| generates a random integer in the specified range (function template)[edit] | |
| reseeds the per-thread random engine (function)[edit] | |
Defined in header <experimental/algorithm> | |
| selects n random elements from a sequence (function template) | |
| randomly re-orders elements in a range (function template) | |
Defined in header <experimental/type_traits> | |
__cpp_lib_experimental_logical_traits | a value of at least201511 indicates that the logical operator type traits are supported (macro constant) |
__cpp_lib_experimental_detect | a value of at least201505 indicates that the detection idiom is supported (macro constant) |
Defined in header <experimental/propagate_const> | |
__cpp_lib_experimental_propagate_const | a value of at least201505 indicates thatpropagate_const is supported (macro constant) |
Defined in header <experimental/functional> | |
__cpp_lib_experimental_not_fn | a value of at least201406 indicates thatnot_fn is supported (macro constant) |
Defined in header <experimental/memory> | |
__cpp_lib_experimental_observer_ptr | a value of at least201411 indicates thatobserver_ptr is supported (macro constant) |
Defined in header <experimental/array> | |
__cpp_lib_experimental_make_array | a value of at least201505 indicates thatmake_array is supported (macro constant) |
Defined in header <experimental/iterator> | |
__cpp_lib_experimental_ostream_joiner | a value of at least201411 indicates thatostream_joiner is supported (macro constant) |
Defined in header <experimental/vector> | |
__cpp_lib_experimental_erase_if | a value of at least201411 indicates that uniform container erasure is supported (macro constant) |
Defined in header <experimental/numeric> | |
__cpp_lib_experimental_gcd_lcm | a value of at least201411 indicates thatgcd andlcm are supported (macro constant) |
Defined in header <experimental/random> | |
__cpp_lib_experimental_randint | a value of at least201511 indicates thatrandint and related functions are supported (macro constant) |
Defined in header <experimental/source_location> | |
__cpp_lib_experimental_source_location | a value of at least201505 indicates thatsource_location is supported (macro constant) |
The following components of the library fundamentals v2 have been adopted into the C++17 standard.
Defined in header <experimental/type_traits> | |
variadic alias template forvoid(alias template) | |
Defined in header <experimental/type_traits> | |
| variadic logical AND metafunction (class template) | |
| variadic logical OR metafunction (class template) | |
| logical NOT metafunction (class template) | |
Defined in header <experimental/functional> | |
| creates a function object that returns the complement of the result of the function object it holds (function template)[edit] | |
Defined in header <experimental/numeric> | |
constexpr function template returning the greatest common divisor of two integers(function template)[edit] | |
constexpr function template returning the least common multiple of two integers(function template)[edit] | |
The following components of the library fundamentals v2 have been adopted into the C++20 standard.
Defined in header <experimental/string> | |
| erases all elements equal to a specific value from astd::basic_string (function template) | |
| erases all elements satisfying a predicate from astd::basic_string (function template) | |
Defined in header <experimental/deque> | |
| erases all elements equal to a specific value from astd::deque (function template) | |
| erases all elements satisfying a predicate from astd::deque (function template) | |
Defined in header <experimental/vector> | |
| erases all elements equal to a specific value from astd::vector (function template) | |
| erases all elements satisfying a predicate from astd::vector (function template) | |
Defined in header <experimental/forward_list> | |
| erases all elements equal to a specific value from astd::forward_list (function template) | |
| erases all elements satisfying a predicate from astd::forward_list (function template) | |
Defined in header <experimental/list> | |
| erases all elements equal to a specific value from astd::list (function template) | |
| erases all elements satisfying a predicate from astd::list (function template) | |
Defined in header <experimental/map> | |
| erases all elements satisfying a predicate from astd::map (function template) | |
| erases all elements satisfying a predicate from astd::multimap (function template) | |
Defined in header <experimental/set> | |
| erases all elements satisfying a predicate from astd::set (function template) | |
| erases all elements satisfying a predicate from astd::multiset (function template) | |
Defined in header <experimental/unordered_map> | |
| erases all elements satisfying a predicate from astd::unordered_map (function template) | |
| erases all elements satisfying a predicate from astd::unordered_multimap (function template) | |
Defined in header <experimental/unordered_set> | |
| erases all elements satisfying a predicate from astd::unordered_set (function template) | |
| erases all elements satisfying a predicate from astd::unordered_multiset (function template) | |
Defined in header <experimental/source_location> | |
| a class representing information about the source code, such as file names, line numbers, and function names (class) | |
std::array conversionDefined in header <experimental/array> | |
| creates astd::array object from a built-in array (function template)[edit] | |