|
|
C++ includes a variety of utility libraries that provide functionality ranging frombit-counting topartial function application. These libraries can be broadly divided into two groups:
Language support libraries provide classes and functions that interact closely with language features and support common language idioms.
The header<version> supplies implementation-dependent information about the C++ standard library (such as the version number and release date). It also defines thelibrary feature-test macros.
Basic types (e.g.std::size_t,std::nullptr_t), RTTI (e.g.std::type_info)
Termination (e.g.std::abort,std::atexit), environment (e.g.std::system), signals (e.g.std::raise).
Smart pointers (e.g.std::shared_ptr), allocators (e.g.std::allocator orstd::pmr::memory_resource), C-style memory management (e.g.std::malloc).
Exceptions (e.g.std::exception,std::terminate), assertions (e.g.assert).
Support for functions that take an arbitrary number of parameters (via e.g.va_start,va_arg,va_end).
Defined in header <initializer_list> | |
(C++11) | references a temporary array created inlist-initialization (class template)[edit] |
Defined in header <source_location> | |
(C++20) | a class representing information about the source code, such as file names, line numbers, and function names (class)[edit] |
Defined in header <compare> | |
specifies that operator<=> produces consistent result on given types (concept)[edit] | |
(C++20) | the result type of 3-way comparison that supports all 6 operators, is not substitutable, and allows incomparable values (class)[edit] |
(C++20) | the result type of 3-way comparison that supports all 6 operators and is not substitutable (class)[edit] |
(C++20) | the result type of 3-way comparison that supports all 6 operators and is substitutable (class)[edit] |
named comparison functions (function)[edit] | |
(C++20) | constrained function object implementingx<=> y (class)[edit] |
(C++20) | obtains the result type of the three-way comparison operator<=> on given types (class template)[edit] |
(C++20) | the strongest comparison category to which all of the given types can be converted (class template)[edit] |
(C++20) | performs 3-way comparison and produces a result of typestd::strong_ordering (customization point object)[edit] |
(C++20) | performs 3-way comparison and produces a result of typestd::weak_ordering (customization point object)[edit] |
(C++20) | performs 3-way comparison and produces a result of typestd::partial_ordering (customization point object)[edit] |
performs 3-way comparison and produces a result of typestd::strong_ordering , even ifoperator<=> is unavailable(customization point object)[edit] | |
(C++20) | performs 3-way comparison and produces a result of typestd::weak_ordering , even ifoperator<=> is unavailable(customization point object)[edit] |
performs 3-way comparison and produces a result of typestd::partial_ordering , even ifoperator<=> is unavailable(customization point object)[edit] |
Types forcoroutine support (e.g.std::coroutine_traits,std::coroutine_handle).
Types forcontract support (e.g.std::contracts::contract_violation).
Defined in header <utility> | |
swaps the values of two objects (function template)[edit] | |
(C++14) | replaces the argument with a new value and returns its previous value (function template)[edit] |
Defined in header <concepts> | |
(C++20) | swaps the values of two objects (customization point object)[edit] |
Defined in header <utility> | |
(C++11) | forwards a function argument and use the type template argument to preserve its value category (function template)[edit] |
(C++23) | forwards a function argument as if casting it to the value category and constness of the expression of specified type template argument (function template)[edit] |
(C++11) | converts the argument to an xvalue (function template)[edit] |
(C++11) | converts the argument to an xvalue if the move constructor does not throw (function template)[edit] |
(C++17) | obtains a reference toconst to its argument (function template)[edit] |
(C++11) | obtains a reference to an object of the template type argument for use in an unevaluated context (function template)[edit] |
(C++23) | converts an enumeration to its underlying type (function template)[edit] |
Defined in header <utility> | |
compares two integer values, ensuring that signed negative numbers are less than unsigned numbers (function template)[edit] | |
(C++20) | checks if an integer value is in the range of a given integer type (function template)[edit] |
Defined in header <utility> | |
Defined in namespace std::rel_ops | |
(deprecated in C++20) | automatically generates comparison operators based on user-definedoperator== andoperator< (function template)[edit] |
Defined in header <utility> | |
piecewise construction tag (tag)[edit] | |
in-place construction tag (tag)[edit] | |
(C++26) | value construction tag (tag)[edit] |
Defined in header <utility> | |
implements binary tuple, i.e. a pair of values (class template)[edit] | |
Defined in header <tuple> | |
(C++11) | implements fixed size container, which holds elements of possibly different types (class template)[edit] |
(C++17) | calls a function with a tuple of arguments (function template)[edit] |
(C++17) | construct an object with a tuple of arguments (function template)[edit] |
Tuple protocol(since C++11) | |
Defined in header <tuple> | |
Defined in header <utility> | |
Defined in header <array> | |
Defined in header <ranges> | |
Defined in header <complex> | |
(C++11) | obtains the number of elements of a tuple-like type (class template)[edit] |
(C++11) | obtains the element types of a tuple-like type (class template)[edit] |
Defined in header <optional> | |
(C++17) | a wrapper that may or may not hold an object (class template)[edit] |
Defined in header <expected> | |
(C++23) | a wrapper that contains either an expected or error value (class template)[edit] |
Defined in header <variant> | |
(C++17) | a type-safe discriminated union (class template)[edit] |
Defined in header <any> | |
(C++17) | objects that hold instances of anyCopyConstructible type (class)[edit] |
Defined in header <bitset> | |
implements constant length bit array (class template)[edit] |
The header<bit> provides several function templates to access, manipulate, and process individual bits and bit sequences. The byte ordering (endianness) of scalar types can be inspected viastd::endian facility.
Partial function application (e.g.std::bind) and related utilities: utilities for binding such asstd::ref andstd::placeholders, polymorphic function wrappers:std::function, predefined functors (e.g.std::plus,std::equal_to), pointer-to-member to function convertersstd::mem_fn.
Defined in header <functional> | |
(C++11) | hash function object (class template)[edit] |
C documentation forUtility library |