Clause | Category | |
Language support library | ||
Concepts library | ||
Diagnostics library | ||
Memory management library | ||
Metaprogramming library | ||
General utilities library | ||
Containers library | ||
Iterators library | ||
Ranges library | ||
Algorithms library | ||
Strings library | ||
Text processing library | ||
Numerics library | ||
Time library | ||
Input/output library | ||
Concurrency support library | ||
Execution control library |
<algorithm> | <forward_list> | <mutex> | <stacktrace> | |
<any> | <fstream> | <new> | <stdexcept> | |
<array> | <functional> | <numbers> | <stdfloat> | |
<atomic> | <future> | <numeric> | <stop_token> | |
<barrier> | <generator> | <optional> | <streambuf> | |
<bit> | <hazard_pointer> | <ostream> | <string> | |
<bitset> | <initializer_list> | <print> | <string_view> | |
<charconv> | <inplace_vector> | <queue> | <syncstream> | |
<chrono> | <iomanip> | <random> | <system_error> | |
<compare> | <ios> | <ranges> | <text_encoding> | |
<complex> | <iosfwd> | <ratio> | <thread> | |
<concepts> | <iostream> | <rcu> | <tuple> | |
<condition_variable> | <istream> | <regex> | <type_traits> | |
<coroutine> | <iterator> | <scoped_allocator> | <typeindex> | |
<debugging> | <latch> | <semaphore> | <typeinfo> | |
<deque> | <limits> | <set> | <unordered_map> | |
<exception> | <linalg> | <shared_mutex> | <unordered_set> | |
<execution> | <list> | <source_location> | <utility> | |
<expected> | <locale> | <span> | <valarray> | |
<filesystem> | <map> | <spanstream> | <variant> | |
<flat_map> | <mdspan> | <sstream> | <vector> | |
<flat_set> | <memory> | <stack> | <version> | |
<format> | <memory_resource> |
<cassert> | <cfenv> | <climits> | <csetjmp> | <cstddef> | <cstdlib> | <cuchar> | |
<cctype> | <cfloat> | <clocale> | <csignal> | <cstdint> | <cstring> | <cwchar> | |
<cerrno> | <cinttypes> | <cmath> | <cstdarg> | <cstdio> | <ctime> | <cwctype> |
abort_handler_s | mbstowcs_s | strncat_s | vswscanf_s | |
asctime_s | memcpy_s | strncpy_s | vwprintf_s | |
bsearch_s | memmove_s | strtok_s | vwscanf_s | |
constraint_handler_t | memset_s | swprintf_s | wcrtomb_s | |
ctime_s | printf_s | swscanf_s | wcscat_s | |
errno_t | qsort_s | tmpfile_s | wcscpy_s | |
fopen_s | RSIZE_MAX | TMP_MAX_S | wcsncat_s | |
fprintf_s | rsize_t | tmpnam_s | wcsncpy_s | |
freopen_s | scanf_s | vfprintf_s | wcsnlen_s | |
fscanf_s | set_constraint_handler_s | vfscanf_s | wcsrtombs_s | |
fwprintf_s | snprintf_s | vfwprintf_s | wcstok_s | |
fwscanf_s | snwprintf_s | vfwscanf_s | wcstombs_s | |
getenv_s | sprintf_s | vprintf_s | wctomb_s | |
gets_s | sscanf_s | vscanf_s | wmemcpy_s | |
gmtime_s | strcat_s | vsnprintf_s | wmemmove_s | |
ignore_handler_s | strcpy_s | vsnwprintf_s | wprintf_s | |
localtime_s | strerrorlen_s | vsprintf_s | wscanf_s | |
L_tmpnam_s | strerror_s | vsscanf_s | ||
mbsrtowcs_s | strlen_s | vswprintf_s |
Subclause | Header | ||
Common definitions | <cstddef> | ||
C standard library | <cstdlib> | ||
Implementation properties | <cfloat>, <climits>, <limits>, | ||
<version> | |||
Integer types | <cstdint> | ||
Dynamic memory management | <new> | ||
Type identification | <typeinfo> | ||
Source location | <source_location> | ||
Exception handling | <exception> | ||
Initializer lists | <initializer_list> | ||
Comparisons | <compare> | ||
Coroutines support | <coroutine> | ||
Other runtime support | <cstdarg> | ||
Concepts library | <concepts> | ||
Error numbers | <cerrno> | ||
System error support | <system_error> | ||
Debugging | <debugging> | ||
Memory | <memory> | ||
Type traits | <type_traits> | ||
Compile-time rational arithmetic | <ratio> | ||
Utility components | <utility> | ||
Tuples | <tuple> | ||
Optional objects | <optional> | ||
Variants | <variant> | ||
Expected objects | <expected> | ||
Function objects | <functional> | ||
Bit manipulation | <bit> | ||
Class template array | <array> | ||
Class template inplace_vector | <inplace_vector> | ||
Contiguous access | <span> | ||
Multidimensional access | <mdspan> | ||
Iterators library | <iterator> | ||
Ranges library | <ranges> | ||
Algorithms library | <algorithm>, <numeric> | ||
String view classes | <string_view> | ||
String classes | <string> | ||
Null-terminated sequence utilities | <cstring>, <cwchar> | ||
Primitive numeric conversions | <charconv> | ||
Mathematical functions for floating-point types | <cmath> | ||
Atomics | <atomic> | ||
Expression | Return type | Requirement | |
a == b | decltype(a == b) models boolean-testable |
Expression | Return type | Requirement | |
a < b | decltype(a < b) models boolean-testable | < is a strict weak ordering relation ([alg.sorting]) |
Expression | Post-condition | |
T u = rv; | u is equivalent to the value of rv before the construction | |
T(rv) | T(rv) is equivalent to the value of rv before the construction | |
Expression | Post-condition | |
T u = v; | the value of v is unchanged and is equivalent to u | |
T(v) | the value of v is unchanged and is equivalent to T(v) |
Expression | Return type | Return value | Post-condition | |
t = rv | T& | t | If t and rv do not refer to the same object,
t is equivalent to the value of rv before the assignment | |
Expression | Return type | Return value | Post-condition | |
t = v | T& | t | t is equivalent to v, the value of v is unchanged |
Expression | Post-condition | |
u.~T() | All resources owned by u are reclaimed, no exception is propagated. | |
[Note 3: Array types and non-object types are not Cpp17Destructible. โ end note] |
Expression | Return type | Operational semantics | |
P u(np); | Postconditions: u == nullptr | ||
P u = np; | |||
P(np) | Postconditions: P(np) == nullptr | ||
t = np | P& | Postconditions: t == nullptr | |
a != b | decltype(a != b) models boolean-testable | !(a == b) | |
a == np | a == P() | ||
np == a | |||
a != np | !(a == np) | ||
np != a |
Expression | Return type | Requirement | |
h(k) | size_t | ||
h(u) | size_t | Shall not modify u. |
typename X::pointer
typename X::const_pointer
typename X::void_pointer
typename Y::void_pointer
typename X::const_void_pointer
typename Y::const_void_pointer
typename X::value_type
typename X::size_type
typename X::difference_type
typename X::rebind<U>::other
*p
*q
p->m
q->m
static_cast<XX::pointer>(w)
static_cast<XX::const_pointer>(x)
pointer_traits<XX::pointer>::pointer_to(r)
a.allocate(n)
a.allocate(n, y)
a.allocate_at_least(n)
a.deallocate(p, n)
a.max_size()
a1 == a2
a1 != a2
a == b
a != b
X u(a);
X u = a;
X u(b);
X u(std::move(a));
X u = std::move(a);
X u(std::move(b));
a.construct(c, args...)
a.destroy(c)
a.select_on_container_copy_construction()
typename X::propagate_on_container_copy_assignment
typename X::propagate_on_container_move_assignment
typename X::propagate_on_container_swap
typename X::is_always_equal