14882: Tables (original) (raw)
Tables [tab]
Table 1 β Basic character set [tab:lex.charset.basic]
πcharacter | glyph | |
---|---|---|
πU+0009 | character tabulation | |
πU+000b | line tabulation | |
πU+000c | form feed | |
πU+0020 | space | |
πU+000a | line feed | new-line |
πU+0021 | exclamation mark | ! |
πU+0022 | quotation mark | " |
πU+0023 | number sign | # |
πU+0024 | dollar sign | $ |
πU+0025 | percent sign | % |
πU+0026 | ampersand | & |
πU+0027 | apostrophe | ' |
πU+0028 | left parenthesis | ( |
πU+0029 | right parenthesis | ) |
πU+002a | asterisk | * |
πU+002b | plus sign | + |
πU+002c | comma | , |
πU+002d | hyphen-minus | - |
πU+002e | full stop | . |
πU+002f | solidus | / |
πU+0030 .. U+0039 | digit zero .. nine | 0 1 2 3 4 5 6 7 8 9 |
πU+003a | colon | : |
πU+003b | semicolon | ; |
πU+003c | less-than sign | < |
πU+003d | equals sign | = |
πU+003e | greater-than sign | > |
πU+003f | question mark | ? |
πU+0040 | commercial at | @ |
πU+0041 .. U+005a | latin capital letter a .. z | A B C D E F G H I J K L M |
π | N O P Q R S T U V W X Y Z | |
πU+005b | left square bracket | [ |
πU+005c | reverse solidus | \ |
πU+005d | right square bracket | ] |
πU+005e | circumflex accent | ^ |
πU+005f | low line | _ |
πU+0060 | grave accent | ` |
πU+0061 .. U+007a | latin small letter a .. z | a b c d e f g h i j k l m |
π | n o p q r s t u v w x y z | |
πU+007b | left curly bracket | { |
πU+007c | vertical line | | |
πU+007d | right curly bracket | } |
πU+007e | tilde | ~ |
Table 2 β Additional control characters in the basic literal character set [tab:lex.charset.literal]
U+0000 | null |
---|---|
U+0007 | alert |
U+0008 | backspace |
U+000d | carriage return |
Table 3 β Alternative tokens [tab:lex.digraph]
πAlternative | Primary | Alternative | Primary | Alternative | Primary |
---|---|---|---|---|---|
π<% | { | and | && | and_eq | &= |
π%> | } | bitor | | | or_eq | |= |
π<: | [ | or | | | xor_eq | |
π:> | ] | xor | ^ | not | ! |
π%: | # | compl | ~ | not_eq | != |
π%:%: | ## | bitand | & |
Table 5 β Keywords [tab:lex.key]
πalignas | constinit | extern | protected | throw |
---|---|---|---|---|
πalignof | const_cast | false | public | true |
πasm | continue | float | register | try |
πauto | contract_assert | for | reinterpret_cast | typedef |
πbool | co_await | friend | requires | typeid |
πbreak | co_return | goto | return | typename |
πcase | co_yield | if | short | union |
πcatch | decltype | inline | signed | unsigned |
πchar | default | int | sizeof | using |
πchar8_t | delete | long | static | virtual |
πchar16_t | do | mutable | static_assert | void |
πchar32_t | double | namespace | static_cast | volatile |
πclass | dynamic_cast | new | struct | wchar_t |
πconcept | else | noexcept | switch | while |
πconst | enum | nullptr | template | |
πconsteval | explicit | operator | this | |
πconstexpr | export | private | thread_local |
Table 6 β Alternative representations [tab:lex.key.digraph]
πand | and_eq | bitand | bitor | compl | not |
---|---|---|---|---|---|
πnot_eq | or | or_eq | xor | xor_eq |
Table 8 β Types of integer-literals [tab:lex.icon.type]
πinteger-suffix | decimal-literal | integer-literal other than decimal-literal |
---|---|---|
πnone | int | int |
π | long int | unsigned int |
π | long long int | long int |
π | unsigned long int | |
π | long long int | |
π | unsigned long long int | |
πu or U | unsigned int | unsigned int |
π | unsigned long int | unsigned long int |
π | unsigned long long int | unsigned long long int |
πl or L | long int | long int |
π | long long int | unsigned long int |
π | long long int | |
π | unsigned long long int | |
πBoth u or U | unsigned long int | unsigned long int |
πand l or L | unsigned long long int | unsigned long long int |
πll or LL | long long int | long long int |
π | unsigned long long int | |
πBoth u or U | unsigned long long int | unsigned long long int |
πand ll or LL | ||
πz or Z | the signed integer type corresponding | the signed integer type |
π | to stdβ::βsize_t ([support.types.layout]) | corresponding to stdβ::βsize_t |
π | stdβ::βsize_t | |
πBoth u or U | stdβ::βsize_t | stdβ::βsize_t |
πand z or Z |
Table 10 β Simple escape sequences [tab:lex.ccon.esc]
πcharacter | simple-escape-sequence | |
---|---|---|
πU+000a | line feed | \n |
πU+0009 | character tabulation | \t |
πU+000b | line tabulation | \v |
πU+0008 | backspace | \b |
πU+000d | carriage return | \r |
πU+000c | form feed | \f |
πU+0007 | alert | \a |
πU+005c | reverse solidus | \\ |
πU+003f | question mark | \? |
πU+0027 | apostrophe | \' |
πU+0022 | quotation mark | \" |
Table 13 β String literal concatenations [tab:lex.string.concat]
πSource | Means | Source | Means | Source | Means | |||
---|---|---|---|---|---|---|---|---|
πu"a" | u"b" | u"ab" | U"a" | U"b" | U"ab" | L"a" | L"b" | L"ab" |
πu"a" | "b" | u"ab" | U"a" | "b" | U"ab" | L"a" | "b" | L"ab" |
π"a" | u"b" | u"ab" | "a" | U"b" | U"ab" | "a" | L"b" | L"ab" |
Table 15 β Properties of named extended floating-point types [tab:basic.extended.fp]
πParameter | float16_t | float32_t | float64_t | float128_t | bfloat16_t |
---|---|---|---|---|---|
πISO/IEC 60559 name | binary16 | binary32 | binary64 | binary128 | |
πk, storage width in bits | 16 | 32 | 64 | 128 | 16 |
πp, precision in bits | 11 | 24 | 53 | 113 | 8 |
πemax, maximum exponent | 15 | 127 | 1023 | 16383 | 127 |
πw, exponent field width in bits | 5 | 8 | 11 | 15 | 8 |
Table 16 β Relations on const and volatile [tab:basic.type.qualifier.rel]
πno cv-qualifier | < | const |
---|---|---|
πno cv-qualifier | < | volatile |
πno cv-qualifier | < | const volatile |
πconst | < | const volatile |
πvolatile | < | const volatile |
Table 21 β __has_cpp_attribute values [tab:cpp.cond.ha]
πAttribute | Value |
---|---|
πassume | 202207L |
πdeprecated | 201309L |
πfallthrough | 201603L |
πlikely | 201803L |
πmaybe_unused | 201603L |
πno_unique_address | 201803L |
πnodiscard | 201907L |
πnoreturn | 200809L |
πunlikely | 201803L |
Table 22 β Feature-test macros [tab:cpp.predefined.ft]
πMacro name | Value |
---|---|
π__cpp_aggregate_bases | 201603L |
π__cpp_aggregate_nsdmi | 201304L |
π__cpp_aggregate_paren_init | 201902L |
π__cpp_alias_templates | 200704L |
π__cpp_aligned_new | 201606L |
π__cpp_attributes | 200809L |
π__cpp_auto_cast | 202110L |
π__cpp_binary_literals | 201304L |
π__cpp_capture_star_this | 201603L |
π__cpp_char8_t | 202207L |
π__cpp_concepts | 202002L |
π__cpp_conditional_explicit | 201806L |
π__cpp_constexpr | 202406L |
π__cpp_constexpr_dynamic_alloc | 201907L |
π__cpp_constexpr_exceptions | 202411L |
π__cpp_constexpr_in_decltype | 201711L |
π__cpp_consteval | 202211L |
π__cpp_constinit | 201907L |
π__cpp_contracts | 202502L |
π__cpp_decltype | 200707L |
π__cpp_decltype_auto | 201304L |
π__cpp_deduction_guides | 201907L |
π__cpp_delegating_constructors | 200604L |
π__cpp_deleted_function | 202403L |
π__cpp_designated_initializers | 201707L |
π__cpp_enumerator_attributes | 201411L |
π__cpp_explicit_this_parameter | 202110L |
π__cpp_fold_expressions | 201603L |
π__cpp_generic_lambdas | 201707L |
π__cpp_guaranteed_copy_elision | 201606L |
π__cpp_hex_float | 201603L |
π__cpp_if_consteval | 202106L |
π__cpp_if_constexpr | 201606L |
π__cpp_impl_coroutine | 201902L |
π__cpp_impl_destroying_delete | 201806L |
π__cpp_impl_three_way_comparison | 201907L |
π__cpp_implicit_move | 202207L |
π__cpp_inheriting_constructors | 201511L |
π__cpp_init_captures | 201803L |
π__cpp_initializer_lists | 200806L |
π__cpp_inline_variables | 201606L |
π__cpp_lambdas | 200907L |
π__cpp_modules | 201907L |
π__cpp_multidimensional_subscript | 202211L |
π__cpp_named_character_escapes | 202207L |
π__cpp_namespace_attributes | 201411L |
π__cpp_noexcept_function_type | 201510L |
π__cpp_nontype_template_args | 201911L |
π__cpp_nontype_template_parameter_auto | 201606L |
π__cpp_nsdmi | 200809L |
π__cpp_pack_indexing | 202311L |
π__cpp_placeholder_variables | 202306L |
π__cpp_pp_embed | 202502L |
π__cpp_range_based_for | 202211L |
π__cpp_raw_strings | 200710L |
π__cpp_ref_qualifiers | 200710L |
π__cpp_return_type_deduction | 201304L |
π__cpp_rvalue_references | 200610L |
π__cpp_size_t_suffix | 202011L |
π__cpp_sized_deallocation | 201309L |
π__cpp_static_assert | 202306L |
π__cpp_static_call_operator | 202207L |
π__cpp_structured_bindings | 202411L |
π__cpp_template_parameters | 202502L |
π__cpp_template_template_args | 201611L |
π__cpp_threadsafe_static_init | 200806L |
π__cpp_trivial_relocatability | 202502L |
π__cpp_trivial_union | 202502L |
π__cpp_unicode_characters | 200704L |
π__cpp_unicode_literals | 200710L |
π__cpp_user_defined_literals | 200809L |
π__cpp_using_enum | 201907L |
π__cpp_variable_templates | 201304L |
π__cpp_variadic_friend | 202403L |
π__cpp_variadic_templates | 200704L |
π__cpp_variadic_using | 201611L |
Table 26 β Names from ISO/IEC 9899:2018, Annex K [tab:c.annex.k.names]
π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 |
Table 28 β Cpp17EqualityComparable requirements [tab:cpp17.equalitycomparable]
decltype(a == b) models boolean-testable | == is an equivalence relation, that is, it has the following properties:If a == b and b == c, then a == c. |
---|
Table 30 β Cpp17DefaultConstructible requirements [tab:cpp17.defaultconstructible]
object t is default-initialized |
---|
object u is value-initialized or aggregate-initialized |
an object of type T is value-initialized or aggregate-initialized |
Table 31 β Cpp17MoveConstructible requirements [tab:cpp17.moveconstructible]
u is equivalent to the value of rv before the construction |
---|
T(rv) is equivalent to the value of rv before the construction |
rv's state is unspecified[Note 1: rv must still meet the requirements of the library component that is using it. The operations listed in those requirements must work as specified whether rv has been moved from or not. β _end note_] |
Table 33 β Cpp17MoveAssignable requirements [tab:cpp17.moveassignable]
π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 |
πrv's state is unspecified. [Note 2: rv must still meet the requirements of the library component that is using it, whether or not t and rv refer to the same object. The operations listed in those requirements must work as specified whether rv has been moved from or not. β _end note_] |
Table 35 β Cpp17Destructible requirements [tab:cpp17.destructible]
All resources owned by u are reclaimed, no exception is propagated. |
---|
Table 36 β Cpp17NullablePointer requirements [tab:cpp17.nullablepointer]
π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 | decltype(a == np) and decltype(np == a) each model boolean-testable | a == P() |
πnp == a | ||
πa != np | decltype(a != np) and decltype(np != a) each model boolean-testable | !(a == np) |
πnp != a |
Table 37 β Cpp17Hash requirements [tab:cpp17.hash]
The value returned shall depend only on the argument k for the duration of the program. [Note 1: Thus all evaluations of the expression h(k) with the same value for k yield the same result for a given execution of the program. β _end note_] For two different values t1 and t2, the probability that h(t1) and h(t2) compare equal should be very small, approaching 1.0 / numeric_limits<size_t>β::βmax(). |
---|
Table 38 β Zombie names in namespace std [tab:zombie.names.std]
π auto_ptr | generate_header | pointer_to_binary_function |
---|---|---|
π auto_ptr_ref | get_pointer_safety | pointer_to_unary_function |
π binary_function | get_temporary_buffer | ptr_fun |
π binary_negate | get_unexpected | random_shuffle |
π bind1st | gets | raw_storage_iterator |
π bind2nd | is_literal_type | result_of |
π binder1st | is_literal_type_v | result_of_t |
π binder2nd | istrstream | return_temporary_buffer |
π codecvt_mode | little_endian | set_unexpected |
π codecvt_utf16 | mem_fun1_ref_t | strstream |
π codecvt_utf8 | mem_fun1_t | strstreambuf |
π codecvt_utf8_utf16 | mem_fun_ref_t | unary_function |
π const_mem_fun1_ref_t | mem_fun_ref | unary_negate |
π const_mem_fun1_t | mem_fun_t | uncaught_exception |
π const_mem_fun_ref_t | mem_fun | undeclare_no_pointers |
π const_mem_fun_t | not1 | undeclare_reachable |
π consume_header | not2 | unexpected_handler |
π declare_no_pointers | ostrstream | wbuffer_convert |
π declare_reachable | pointer_safety | wstring_convert |
Table 43 β Value of object returned by current [tab:support.srcloc.current]
Line numbers are presumed to be 1-indexed; however, an implementation is encouraged to use 0 when the line number is unknown. |
---|
An implementation-defined value denoting some offset from the start of the line denoted by line_. Column numbers are presumed to be 1-indexed; however, an implementation is encouraged to use 0 when the column number is unknown. |
A name of the current function such as in __func__ ([dcl.fct.def.general]) if any, an empty string otherwise. |
Table 45 β Enum evaluation_semantic [tab:support.contract.enum.semantic]
πName | Meaning |
---|---|
πignore | Ignore evaluation semantic |
πobserve | Observe evaluation semantic |
πenforce | Enforce evaluation semantic |
πquick_enforce | Quick-enforce evaluation semantic |
π |
Table 46 β Enum detection_mode [tab:support.contract.enum.detection]
The predicate of the contract assertion evaluated to false or would have evaluated to false. |
---|
An uncaught exception occurred during evaluation of the contract assertion. |
Table 63 β Expressions used to perform ratio arithmetic [tab:ratio.arithmetic]
πType | Value of X | Value of Y |
---|---|---|
πratio_add<R1, R2> | R1β::βnum * R2β::βden + | R1β::βden * R2β::βden |
π | R2β::βnum * R1β::βden | |
πratio_subtract<R1, R2> | R1β::βnum * R2β::βden - | R1β::βden * R2β::βden |
π | R2β::βnum * R1β::βden | |
πratio_multiply<R1, R2> | R1β::βnum * R2β::βnum | R1β::βden * R2β::βden |
πratio_divide<R1, R2> | R1β::βnum * R2β::βden | R1β::βden * R2β::βnum |
Table 65 β optionalβ::βoperator=(const optional&) effects [tab:optional.assign.copy]
π | *this contains a value | *this does not contain a value |
---|---|---|
πrhs contains a value | assigns *rhs to the contained value | direct-non-list-initializes the contained value with *rhs |
πrhs does not contain a value | destroys the contained value by calling val->Tβ::β~T() | no effect |
Table 66 β optionalβ::βoperator=(optional&&) effects [tab:optional.assign.move]
π | *this contains a value | *this does not contain a value |
---|---|---|
πrhs contains a value | assigns stdβ::βmove(*rhs) to the contained value | direct-non-list-initializes the contained value with stdβ::βmove(*rhs) |
πrhs does not contain a value | destroys the contained value by calling val->Tβ::β~T() | no effect |
Table 67 β optionalβ::βoperator=(const optional<U>&) effects [tab:optional.assign.copy.templ]
π | *this contains a value | *this does not contain a value |
---|---|---|
πrhs contains a value | assigns *rhs to the contained value | direct-non-list-initializes the contained value with *rhs |
πrhs does not contain a value | destroys the contained value by calling val->Tβ::β~T() | no effect |
Table 68 β optionalβ::βoperator=(optional<U>&&) effects [tab:optional.assign.move.templ]
π | *this contains a value | *this does not contain a value |
---|---|---|
πrhs contains a value | assigns stdβ::βmove(*rhs) to the contained value | direct-non-list-initializes the contained value with stdβ::βmove(*rhs) |
πrhs does not contain a value | destroys the contained value by calling val->Tβ::β~T() | no effect |
Table 69 β optionalβ::βswap(optional&) effects [tab:optional.swap]
π | *this contains a value | *this does not contain a value |
---|---|---|
πrhs contains a value | calls swap(*(*this), *rhs) | direct-non-list-initializes the contained value of *thiswith stdβ::βmove(*rhs), followed by rhs.val->Tβ::β~T(); postcondition is that *this contains a value and rhs does not contain a value |
πrhs does not contain a value | direct-non-list-initializes the contained value of rhswith stdβ::βmove(*(*this)), followed by val->Tβ::β~T(); postcondition is that *this does not contain a value and rhs contains a value | no effect |
Table 70 β swap(expected&) effects [tab:expected.object.swap]
equivalent to: using stdβ::βswap; swap(val, rhs.val); |
---|
equivalent to: using stdβ::βswap; swap(unex, rhs.unex); |
Table 72 β Containers library summary [tab:containers.summary]
π | Subclause | Header |
---|---|---|
π[container.requirements] | Requirements | |
π[sequences] | Sequence containers | <array>, <deque>, <forward_list>,<hive>, |
π | <inplace_vector>, <list>, <vector> | |
π[associative] | Associative containers | <map>, <set> |
π[unord] | Unordered associative containers | <unordered_map>, <unordered_set> |
π[container.adaptors] | Container adaptors | <queue>, <stack>, <flat_map>, <flat_set> |
π[views] | Views | <span>, <mdspan> |
Table 73 β Container types with compatible nodes [tab:container.node.compat]
πmap<K, T, C1, A> | map<K, T, C2, A> |
---|---|
πmap<K, T, C1, A> | multimap<K, T, C2, A> |
πset<K, C1, A> | set<K, C2, A> |
πset<K, C1, A> | multiset<K, C2, A> |
πunordered_map<K, T, H1, E1, A> | unordered_map<K, T, H2, E2, A> |
πunordered_map<K, T, H1, E1, A> | unordered_multimap<K, T, H2, E2, A> |
πunordered_set<K, H1, E1, A> | unordered_set<K, H2, E2, A> |
πunordered_set<K, H1, E1, A> | unordered_multiset<K, H2, E2, A> |
Table 75 β Relations among iterator categories [tab:iterators.relations]
πContiguous | β Random Access | β Bidirectional | β Forward | β Input |
---|---|---|---|---|
π | β Output |
Table 76 β Cpp17Iterator requirements [tab:iterator]
πExpression | Return type | Operational | Assertion/note |
---|---|---|---|
π | semantics | pre-/post-condition | |
π*r | unspecified | Preconditions: r is dereferenceable. | |
π++r | X& |
Table 77 β Cpp17InputIterator requirements (in addition to Cpp17Iterator) [tab:inputiterator]
πExpression | Return type | Operational | Assertion/note |
---|---|---|---|
π | semantics | pre-/post-condition | |
πa != b | decltype(a != b) models boolean-testable | !(a == b) | Preconditions: (a, b) is in the domain of ==. |
π*a | reference, convertible to T | Preconditions: a is dereferenceable. The expression(void)*a, *a is equivalent to *a. If a == b and (a, b) is in the domain of == then *a is equivalent to *b. | |
πa->m | (*a).m | Preconditions: a is dereferenceable. | |
π++r | X& | Preconditions: r is dereferenceable. Postconditions: r is dereferenceable or r is past-the-end;any copies of the previous value of r are no longer required to be dereferenceable nor to be in the domain of ==. | |
π(void)r++ | equivalent to (void)++r | ||
π*r++ | convertible to T | { T tmp = *r;++r;return tmp; } |
Table 78 β Cpp17OutputIterator requirements (in addition to Cpp17Iterator) [tab:outputiterator]
πExpression | Return type | Operational | Assertion/note |
---|---|---|---|
π | semantics | pre-/post-condition | |
π*r = o | result is not used | Remarks: After this operation r is not required to be dereferenceable. Postconditions: r is incrementable. | |
π++r | X& | addressof(r) == addressof(++r). Remarks: After this operation r is not required to be dereferenceable. Postconditions: r is incrementable. | |
πr++ | convertible to const X& | { X tmp = r; ++r; return tmp; } | Remarks: After this operation r is not required to be dereferenceable. Postconditions: r is incrementable. |
π*r++ = o | result is not used | Remarks: After this operation r is not required to be dereferenceable. Postconditions: r is incrementable. |
Table 79 β Cpp17ForwardIterator requirements (in addition to Cpp17InputIterator) [tab:forwarditerator]
πExpression | Return type | Operational | Assertion/note |
---|---|---|---|
π | semantics | pre-/post-condition | |
πr++ | convertible to const X& | { X tmp = r; ++r; return tmp; } | |
π*r++ | reference |
Table 80 β Cpp17BidirectionalIterator requirements (in addition to Cpp17ForwardIterator) [tab:bidirectionaliterator]
πExpression | Return type | Operational | Assertion/note |
---|---|---|---|
π | semantics | pre-/post-condition | |
π--r | X& | Preconditions: there exists s such that r == ++s. Postconditions: r is dereferenceable. --(++r) == r. --r == --s implies r == s. addressof(r) == addressof(--r). | |
πr-- | convertible to const X& | { X tmp = r; --r; return tmp; } | |
π*r-- | reference |
Table 81 β Cpp17RandomAccessIterator requirements (in addition to Cpp17BidirectionalIterator) [tab:randomaccessiterator]
πExpression | Return type | Operational | Assertion/note |
---|---|---|---|
π | semantics | pre-/post-condition | |
πr += n | X& | { difference_type m = n; if (m >= 0) while (m--) ++r; else while (m++) --r; return r; } | |
πa + nn + a | X | { X tmp = a; return tmp += n; } | a + n == n + a. |
πr -= n | X& | return r += -n; | Preconditions: the absolute value of n is in the range of representable values of difference_type. |
πa - n | X | { X tmp = a; return tmp -= n; } | |
πb - a | difference_type | return n; | Preconditions: there exists a value n of type difference_type such that a + n == b. b == a + (b - a). |
πa[n] | convertible to reference | *(a + n) | |
πa < b | decltype(a < b) models boolean-testable | Effects: Equivalent to: return b - a > 0; | < is a total ordering relation |
πa > b | decltype(a > b) models boolean-testable | b < a | > is a total ordering relation opposite to <. |
πa >= b | decltype(a >= b) models boolean-testable | !(a < b) | |
πa <= b | decltype(a <= b) models boolean-testable | !(a > b) |
Table 85 β Character traits requirements [tab:char.traits.req]
πExpression | Return type | Assertion/note | Complexity |
---|---|---|---|
π | pre-/post-condition | ||
πXβ::βchar_type | C | ||
πXβ::βint_type | (described in [char.traits.typedefs]) | ||
πXβ::βoff_type | (described in [iostreams.limits.pos] and [iostream.forward]) | ||
πXβ::βpos_type | (described in [iostreams.limits.pos] and [iostream.forward]) | ||
πXβ::βstate_type | (described in [char.traits.typedefs]) | ||
πXβ::βeq(c,d) | bool | Returns: whether c is to be treated as equal to d. | constant |
πXβ::βlt(c,d) | bool | Returns: whether c is to be treated as less than d. | constant |
πXβ::βcompare(p,q,n) | int | Returns: 0 if for each i in [0, n), Xβ::βeq(p[i],q[i])is true; else, a negative value if, for some j in [0, n),Xβ::βlt(p[j],q[j]) is true and for each i in [0, j)Xβ::βeq(p[i],q[i]) is true; else a positive value. | linear |
πXβ::βlength(p) | size_t | Returns: the smallest i such that Xβ::βeq(p[i],charT()) is true. | linear |
πXβ::βfind(p,n,c) | const Xβ::βchar_type* | Returns: the smallest q in [p, p+n) such thatXβ::βeq(*q,c) is true, nullptr otherwise. | linear |
πXβ::βmove(s,p,n) | Xβ::βchar_type* | for each i in [0, n), performs Xβ::βassign(s[i],p[i]). Copies correctly even where the ranges [p, p+n) and [s, s+n) overlap. Returns: s. | linear |
πXβ::βcopy(s,p,n) | Xβ::βchar_type* | Preconditions: The ranges [p, p+n) and [s, s+n) do not overlap. Returns: s. for each i in [0, n), performs Xβ::βassign(s[i],p[i]). | linear |
πXβ::βassign(r,d) | (not used) | assigns r=d. | constant |
πXβ::βassign(s,n,c) | Xβ::βchar_type* | for each i in [0, n), performsXβ::βassign(s[i],c). Returns: s. | linear |
πXβ::βnot_eof(e) | int_type | Returns: e if Xβ::βeq_int_type(e,Xβ::βeof()) is false, otherwise a value f such thatXβ::βeq_int_type(f,Xβ::βeof()) is false. | constant |
πXβ::βto_char_type(e) | Xβ::βchar_type | Returns: if for some c, Xβ::βeq_int_type(e,Xβ::βto_int_type(c))is true, c; else some unspecified value. | constant |
πXβ::βto_int_type(c) | Xβ::βint_type | Returns: some value e, constrained by the definitions ofto_char_type and eq_int_type. | constant |
πXβ::βeq_int_type(e,f) | bool | Returns: for all c and d, Xβ::βeq(c,d) is equal toXβ::βeq_int_type(Xβ::βto_int_type(c), Xβ::βto_int_type(d)); otherwise, yields trueif e and f are both copies of Xβ::βeof(); otherwise, yields false if one of e and f is a copy of Xβ::βeof() and the other is not; otherwise the value is unspecified. | constant |
πXβ::βeof() | Xβ::βint_type | Returns: a value e such that Xβ::βeq_int_type(e,Xβ::βto_int_type(c))is false for all values c. | constant |
Table 87 β Text library summary [tab:text.summary]
π | Subclause | Header |
---|---|---|
π[charconv] | Primitive numeric conversions | <charconv> |
π[localization] | Localization library | <locale>, <clocale> |
π[format] | Formatting | <format> |
π[text.encoding] | Text encodings identification | <text_encoding> |
π[re] | Regular expressions library | <regex> |
π[text.c.strings] | Null-terminated sequence utilities | <cctype>, <cstdlib>, <cuchar>, <cwchar>, <cwctype> |
Table 89 β Locale category facets [tab:locale.category.facets]
πCategory | Includes facets |
---|---|
πcollate | collate<char>, collate<wchar_t> |
πctype | ctype<char>, ctype<wchar_t> |
π | codecvt<char, char, mbstate_t> |
π | codecvt<wchar_t, char, mbstate_t> |
πmonetary | moneypunct<char>, moneypunct<wchar_t> |
π | moneypunct<char, true>, moneypunct<wchar_t, true> |
π | money_get<char>, money_get<wchar_t> |
π | money_put<char>, money_put<wchar_t> |
πnumeric | numpunct<char>, numpunct<wchar_t> |
π | num_get<char>, num_get<wchar_t> |
π | num_put<char>, num_put<wchar_t> |
πtime | time_get<char>, time_get<wchar_t> |
π | time_put<char>, time_put<wchar_t> |
πmessages | messages<char>, messages<wchar_t> |
Table 90 β Required specializations [tab:locale.spec]
πCategory | Includes facets |
---|---|
πcollate | collate_byname<char>, collate_byname<wchar_t> |
πctype | ctype_byname<char>, ctype_byname<wchar_t> |
π | codecvt_byname<char, char, mbstate_t> |
π | codecvt_byname<wchar_t, char, mbstate_t> |
πmonetary | moneypunct_byname<char, International> |
π | moneypunct_byname<wchar_t, International> |
π | money_get<C, InputIterator> |
π | money_put<C, OutputIterator> |
πnumeric | numpunct_byname<char>, numpunct_byname<wchar_t> |
π | num_get<C, InputIterator>, num_put<C, OutputIterator> |
πtime | time_get<char, InputIterator> |
π | time_get_byname<char, InputIterator> |
π | time_get<wchar_t, InputIterator> |
π | time_get_byname<wchar_t, InputIterator> |
π | time_put<char, OutputIterator> |
π | time_put_byname<char, OutputIterator> |
π | time_put<wchar_t, OutputIterator> |
π | time_put_byname<wchar_t, OutputIterator> |
πmessages | messages_byname<char>, messages_byname<wchar_t> |
Table 91 β do_in/do_out result values [tab:locale.codecvt.inout]
not all source characters converted |
---|
encountered a character in [from, from_end) that cannot be converted |
internT and externT are the same type, and input sequence is identical to converted sequence |
Table 92 β do_unshift result values [tab:locale.codecvt.unshift]
space for more than to_end - to destination elements was needed to terminate a sequence given the value of state |
---|
an unspecified error has occurred |
no termination is needed for this state_type |
Table 93 β Integer conversions [tab:facet.num.get.int]
πState | stdio equivalent |
---|---|
πbasefield == oct | %o |
πbasefield == hex | %X |
πbasefield == 0 | %i |
πsigned integral type | %d |
πunsigned integral type | %u |
Table 94 β Length modifier [tab:facet.num.get.length]
πType | Length modifier |
---|---|
πshort | h |
πunsigned short | h |
πlong | l |
πunsigned long | l |
πlong long | ll |
πunsigned long long | ll |
πdouble | l |
πlong double | L |
Table 95 β Integer conversions [tab:facet.num.put.int]
πState | stdio equivalent |
---|---|
πbasefield == ios_baseβ::βoct | %o |
π(basefield == ios_baseβ::βhex) && !uppercase | %x |
π(basefield == ios_baseβ::βhex) | %X |
πfor a signed integral type | %d |
πfor an unsigned integral type | %u |
Table 96 β Floating-point conversions [tab:facet.num.put.fp]
πState | stdio equivalent |
---|---|
πfloatfield == ios_baseβ::βfixed && !uppercase | %f |
πfloatfield == ios_baseβ::βfixed | %F |
πfloatfield == ios_baseβ::βscientific && !uppercase | %e |
πfloatfield == ios_baseβ::βscientific | %E |
πfloatfield == (ios_baseβ::βfixed | ios_baseβ::βscientific) && !uppercase | %a |
πfloatfield == (ios_baseβ::βfixed | ios_baseβ::βscientific) | %A |
π!uppercase | %g |
πotherwise | %G |
Table 97 β Length modifier [tab:facet.num.put.length]
πType | Length modifier |
---|---|
πlong | l |
πlong long | ll |
πunsigned long | l |
πunsigned long long | ll |
πlong double | L |
πotherwise | none |
Table 98 β Numeric conversions [tab:facet.num.put.conv]
πType(s) | State | stdio equivalent |
---|---|---|
πan integral type | showpos | + |
π | showbase | # |
πa floating-point type | showpos | + |
π | showpoint | # |
Table 99 β Fill padding [tab:facet.num.put.fill]
πState | Location |
---|---|
πadjustfield == ios_baseβ::βleft | pad after |
πadjustfield == ios_baseβ::βright | pad before |
πadjustfield == internal and a sign occurs in the representation | pad after the sign |
πadjustfield == internal and representation after stage 1 began with 0x or 0X | pad after x or X |
πotherwise | pad before |
Table 101 β Potential setlocale data races [tab:setlocale.data.races]
πfprintf | isprint | iswdigit | localeconv | tolower |
---|---|---|---|---|
πfscanf | ispunct | iswgraph | mblen | toupper |
πisalnum | isspace | iswlower | mbstowcs | towlower |
πisalpha | isupper | iswprint | mbtowc | towupper |
πisblank | iswalnum | iswpunct | setlocale | wcscoll |
πiscntrl | iswalpha | iswspace | strcoll | wcstod |
πisdigit | iswblank | iswupper | strerror | wcstombs |
πisgraph | iswcntrl | iswxdigit | strtod | wcsxfrm |
πislower | iswctype | isxdigit | strxfrm | wctomb |
Table 102 β Meaning of align options [tab:format.align]
Forces the formatted argument to be aligned to the start of the field by inserting n fill characters after the formatted argument where n is the padding width. This is the default for non-arithmetic non-pointer types, charT, and bool, unless an integer presentation type is specified. |
---|
Forces the formatted argument to be aligned to the end of the field by inserting n fill characters before the formatted argument where n is the padding width. This is the default for arithmetic types other than charT and bool, pointer types, or when an integer presentation type is specified. |
Forces the formatted argument to be centered within the field by insertingfill characters before andfill characters after the formatted argument, wheren is the padding width. |
Table 103 β Meaning of sign options [tab:format.sign]
Indicates that a sign should be used for both non-negative and negative numbers. The + sign is inserted before the output of to_chars for non-negative numbers other than negative zero. [Note 5: For negative numbers and negative zero the output of to_chars will already contain the sign so no additional transformation is performed. β _end note_] |
---|
Indicates that a sign should be used for negative numbers and negative zero only (this is the default behavior). |
Indicates that a leading space should be used for non-negative numbers other than negative zero, and a minus sign for negative numbers and negative zero. |
Table 105 β Meaning of type options for integer types [tab:format.type.int]
πType | Meaning |
---|---|
πb | to_chars(first, last, value, 2);the base prefix is 0b. |
πB | The same as b, except thatthe base prefix is 0B. |
πc | Copies the character static_cast<charT>(value) to the output. Throws format_error if value is not in the range of representable values for charT. |
πd | to_chars(first, last, value). |
πo | to_chars(first, last, value, 8);the base prefix is 0 if value is nonzero and is empty otherwise. |
πx | to_chars(first, last, value, 16);the base prefix is 0x. |
πX | The same as x, except that it uses uppercase letters for digits above 9 andthe base prefix is 0X. |
πnone | The same as d. [Note 8: If the formatting argument type is charT or bool, the default is instead c or s, respectively. β _end note_] |
Table 106 β Meaning of type options for charT [tab:format.type.char]
Copies the character to the output. |
---|
As specified in Table 105with value converted to the unsigned version of the underlying type. |
Table 107 β Meaning of type options for bool [tab:format.type.bool]
Copies textual representation, either true or false, to the output. |
---|
As specified in Table 105for the valuestatic_cast<unsigned char>(value). |
Table 108 β Meaning of type options for floating-point types [tab:format.type.float]
πType | Meaning |
---|---|
πa | If precision is specified, equivalent toto_chars(first, last, value, chars_format::hex, precision) where precision is the specified formatting precision; equivalent toto_chars(first, last, value, chars_format::hex) otherwise. |
πA | The same as a, except that it uses uppercase letters for digits above 9 andP to indicate the exponent. |
πe | Equivalent toto_chars(first, last, value, chars_format::scientific, precision) where precision is the specified formatting precision, or 6 if precision is not specified. |
πE | The same as e, except that it uses E to indicate exponent. |
πf, F | Equivalent toto_chars(first, last, value, chars_format::fixed, precision) where precision is the specified formatting precision, or 6 if precision is not specified. |
πg | Equivalent toto_chars(first, last, value, chars_format::general, precision) where precision is the specified formatting precision, or 6 if precision is not specified. |
πG | The same as g, except that it uses E to indicate exponent. |
πnone | If precision is specified, equivalent toto_chars(first, last, value, chars_format::general, precision) where precision is the specified formatting precision; equivalent toto_chars(first, last, value) otherwise. |
Table 109 β Meaning of type options for pointer types [tab:format.type.ptr]
If uintptr_t is defined,to_chars(first, last, reinterpret_cast<uintptr_t>(value), 16) with the prefix 0x inserted immediately before the output of to_chars; otherwise, implementation-defined. |
---|
The same as p, except that it uses uppercase letters for digits above 9 and the base prefix is 0X. |
Table 110 β BasicFormatter requirements [tab:formatter.basic]
Parses format-spec ([format.string]) for type Tin the range [pc.begin(), pc.end()) until the first unmatched character. Throws format_error unless the whole range is parsed or the unmatched character is }. [Note 1: This allows formatters to emit meaningful error messages. β _end note_] Stores the parsed format specifiers in *this and returns an iterator past the end of the parsed range. |
---|
Formats u according to the specifiers stored in *this, writes the output to fc.out(), and returns an iterator past the end of the output range. The output shall only depend onu,fc.locale(),fc.arg(n) for any value n of type size_t, and the range [pc.begin(), pc.end()) from the last call to f.parse(pc). |
Table 111 β Formatter requirements [tab:formatter]
Formats t according to the specifiers stored in *this, writes the output to fc.out(), and returns an iterator past the end of the output range. The output shall only depend ont,fc.locale(),fc.arg(n) for any value n of type size_t, and the range [pc.begin(), pc.end()) from the last call to f.parse(pc). |
---|
As above, but does not modify u. |
Table 112 β Mapping of characters to escape sequences [tab:format.escape.sequences]
πCharacter | Escape sequence |
---|---|
πU+0009 character tabulation | \t |
πU+000a line feed | \n |
πU+000d carriage return | \r |
πU+0022 quotation mark | \" |
πU+005c reverse solidus | \\ |
Table 113 β Meaning of range-type options [tab:formatter.range.type]
πOption | Requirements | Meaning |
---|---|---|
πm | T shall be either a specialization of pair or a specialization of tuplesuch that tuple_size_v<T> is 2. | Indicates that the opening bracket should be "{", the closing bracket should be "}", the separator should be ", ", and each range element should be formatted as ifm were specified for its tuple-type. [Note 2: If the n option is provided in addition to the m option, both the opening and closing brackets are still empty. β _end note_] |
πs | T shall be charT. | Indicates that the range should be formatted as a string. |
π?s | T shall be charT. | Indicates that the range should be formatted as an escaped string ([format.string.escaped]). |
Table 114 β Meaning of tuple-type options [tab:formatter.tuple.type]
πOption | Requirements | Meaning |
---|---|---|
πm | sizeof...(Ts) == 2 | Equivalent to:set_separator(STATICALLY-WIDEN<charT>(": ")); set_brackets({}, {}); |
πn | none | Equivalent to: set_brackets({}, {}); |
πnone | none | No effects |
Table 116 β syntax_option_type effects [tab:re.synopt]
πElement | Effect(s) if set |
---|---|
πicase | Specifies that matching of regular expressions against a character container sequence shall be performed without regard to case. |
πnosubs | Specifies that no sub-expressions shall be considered to be marked, so that when a regular expression is matched against a character container sequence, no sub-expression matches shall be stored in the supplied match_results object. |
πoptimize | Specifies that the regular expression engine should pay more attention to the speed with which regular expressions are matched, and less to the speed with which regular expression objects are constructed. Otherwise it has no detectable effect on the program output. |
πcollate | Specifies that character ranges of the form "[a-b]" shall be locale sensitive. |
πECMAScript | Specifies that the grammar recognized by the regular expression engine shall be that used by ECMAScript in ECMA-262, as modified in [re.grammar]. See also: ECMA-262 15.10 |
πbasic | Specifies that the grammar recognized by the regular expression engine shall be that used by basic regular expressions in POSIX.See also: POSIX, Base Definitions and Headers, Section 9.3 |
πextended | Specifies that the grammar recognized by the regular expression engine shall be that used by extended regular expressions in POSIX.See also: POSIX, Base Definitions and Headers, Section 9.4 |
πawk | Specifies that the grammar recognized by the regular expression engine shall be that used by the utility awk in POSIX. |
πgrep | Specifies that the grammar recognized by the regular expression engine shall be that used by the utility grep in POSIX. |
πegrep | Specifies that the grammar recognized by the regular expression engine shall be that used by the utility grep when given the -E option in POSIX. |
πmultiline | Specifies that ^ shall match the beginning of a line and$ shall match the end of a line, if the ECMAScript engine is selected. |
Table 117 β regex_constantsβ::βmatch_flag_type effects [tab:re.matchflag]
πElement | Effect(s) if set |
---|---|
πmatch_not_bol | The first character in the sequence [first, last) shall be treated as though it is not at the beginning of a line, so the character^ in the regular expression shall not match [first, first). |
πmatch_not_eol | The last character in the sequence [first, last) shall be treated as though it is not at the end of a line, so the character"$" in the regular expression shall not match [last, last). |
πmatch_not_bow | The expression "\\b" shall not match the sub-sequence [first, first). |
πmatch_not_eow | The expression "\\b" shall not match the sub-sequence [last, last). |
πmatch_any | If more than one match is possible then any match is an acceptable result. |
πmatch_not_null | The expression shall not match an empty sequence. |
πmatch_continuous | The expression shall only match a sub-sequence that begins atfirst. |
πmatch_prev_avail | --first is a valid iterator position. When this flag is set the flags match_not_bol and match_not_bow shall be ignored by the regular expression algorithms ([re.alg]) and iterators ([re.iter]). |
πformat_default | When a regular expression match is to be replaced by a new string, the new string shall be constructed using the rules used by the ECMAScript replace function in ECMA-262, part 15.5.4.11 String.prototype.replace. In addition, during search and replace operations all non-overlapping occurrences of the regular expression shall be located and replaced, and sections of the input that did not match the expression shall be copied unchanged to the output string. |
πformat_sed | When a regular expression match is to be replaced by a new string, the new string shall be constructed using the rules used by the sed utility in POSIX. |
πformat_no_copy | During a search and replace operation, sections of the character container sequence being searched that do not match the regular expression shall not be copied to the output string. |
πformat_first_only | When specified during a search and replace operation, only the first occurrence of the regular expression shall be replaced. |
Table 118 β error_type values in the C locale [tab:re.err]
πValue | Error condition |
---|---|
πerror_collate | The expression contains an invalid collating element name. |
πerror_ctype | The expression contains an invalid character class name. |
πerror_escape | The expression contains an invalid escaped character, or a trailing escape. |
πerror_backref | The expression contains an invalid back reference. |
πerror_brack | The expression contains mismatched [ and ]. |
πerror_paren | The expression contains mismatched ( and ). |
πerror_brace | The expression contains mismatched { and }. |
πerror_badbrace | The expression contains an invalid range in a {} expression. |
πerror_range | The expression contains an invalid character range, such as[b-a] in most encodings. |
πerror_space | There is insufficient memory to convert the expression into a finite state machine. |
πerror_badrepeat | One of *?+{ is not preceded by a valid regular expression. |
πerror_complexity | The complexity of an attempted match against a regular expression exceeds a pre-set level. |
πerror_stack | There is insufficient memory to determine whether the regular expression matches the specified character sequence. |
Table 119 β Character class names and corresponding ctype masks [tab:re.traits.classnames]
πNarrow character name | Wide character name | Corresponding ctype_baseβ::βmask value |
---|---|---|
π"alnum" | L"alnum" | ctype_baseβ::βalnum |
π"alpha" | L"alpha" | ctype_baseβ::βalpha |
π"blank" | L"blank" | ctype_baseβ::βblank |
π"cntrl" | L"cntrl" | ctype_baseβ::βcntrl |
π"digit" | L"digit" | ctype_baseβ::βdigit |
π"d" | L"d" | ctype_baseβ::βdigit |
π"graph" | L"graph" | ctype_baseβ::βgraph |
π"lower" | L"lower" | ctype_baseβ::βlower |
π"print" | L"print" | ctype_baseβ::βprint |
π"punct" | L"punct" | ctype_baseβ::βpunct |
π"space" | L"space" | ctype_baseβ::βspace |
π"s" | L"s" | ctype_baseβ::βspace |
π"upper" | L"upper" | ctype_baseβ::βupper |
π"w" | L"w" | ctype_baseβ::βalnum |
π"xdigit" | L"xdigit" | ctype_baseβ::βxdigit |
Table 120 β match_results copy/move operation postconditions [tab:re.results.const]
πElement | Value |
---|---|
πready() | m.ready() |
πsize() | m.size() |
πstr(n) | m.str(n) for all non-negative integers n < m.size() |
πprefix() | m.prefix() |
πsuffix() | m.suffix() |
π(*this)[n] | m[n] for all non-negative integers n < m.size() |
πlength(n) | m.length(n) for all non-negative integers n < m.size() |
πposition(n) | m.position(n) for all non-negative integers n < m.size() |
Table 121 β Effects of regex_match algorithm [tab:re.alg.match]
πElement | Value |
---|---|
πm.size() | 1 + e.mark_count() |
πm.empty() | false |
πm.prefix().first | first |
πm.prefix().second | first |
πm.prefix().matched | false |
πm.suffix().first | last |
πm.suffix().second | last |
πm.suffix().matched | false |
πm[0].first | first |
πm[0].second | last |
πm[0].matched | true |
πm[n].first | For all integers 0 < n < m.size(), the start of the sequence that matched sub-expression n. Alternatively, if sub-expression n did not participate in the match, then last. |
πm[n].second | For all integers 0 < n < m.size(), the end of the sequence that matched sub-expression n. Alternatively, if sub-expression n did not participate in the match, then last. |
πm[n].matched | For all integers 0 < n < m.size(), true if sub-expression n participated in the match, false otherwise. |
Table 122 β Effects of regex_search algorithm [tab:re.alg.search]
πElement | Value |
---|---|
πm.size() | 1 + e.mark_count() |
πm.empty() | false |
πm.prefix().first | first |
πm.prefix().second | m[0].first |
πm.prefix().matched | m.prefix().first != m.prefix().second |
πm.suffix().first | m[0].second |
πm.suffix().second | last |
πm.suffix().matched | m.suffix().first != m.suffix().second |
πm[0].first | The start of the sequence of characters that matched the regular expression |
πm[0].second | The end of the sequence of characters that matched the regular expression |
πm[0].matched | true |
πm[n].first | For all integers 0 < n < m.size(), the start of the sequence that matched sub-expression n. Alternatively, if sub-expression ndid not participate in the match, then last. |
πm[n].second | For all integers 0 < n < m.size(), the end of the sequence that matched sub-expression n. Alternatively, if sub-expression n did not participate in the match, then last. |
πm[n].matched | For all integers 0 < n < m.size(), true if sub-expression nparticipated in the match, false otherwise. |
Table 124 β Seed sequence requirements [tab:rand.req.seedseq]
πExpression | Return type | Pre/post-condition | Complexity |
---|---|---|---|
πSβ::βresult_type | T | T is an unsigned integer type of at least 32 bits. | |
πS() | Creates a seed sequence with the same initial state as all other default-constructed seed sequences of type S. | constant | |
πS(ib,ie) | Creates a seed sequence having internal state that depends on some or all of the bits of the supplied sequence [ib,ie). | ||
πS(il) | Same as S(il.begin(), il.end()). | same as S(il.begin(), il.end()) | |
πq.generate(rb,re) | void | Does nothing if rb == re. Otherwise, fills the supplied sequence [rb,re) with 32-bit quantities that depend on the sequence supplied to the constructor and possibly also depend on the history of generate's previous invocations. | |
πr.size() | size_t | The number of 32-bit units that would be copied by a call to r.param. | constant |
πr.param(ob) | void | Copies to the given destination a sequence of 32-bit units that can be provided to the constructor of a second object of type S, and that would reproduce in that second object a state indistinguishable from the state of the first object. |
Table 125 β Random number engine requirements [tab:rand.req.eng]
πExpression | Return type | Pre/post-condition | Complexity |
---|---|---|---|
πE() | Creates an engine with the same initial state as all other default-constructed engines of type E. | ||
πE(x) | Creates an engine that compares equal to x. | ||
πE(s) | Creates an engine with initial state determined by s. | ||
πE(q)241 | Creates an engine with an initial state that depends on a sequence produced by one call to q.generate. | same as complexity of q.generate called on a sequence whose length is size of state | |
πe.seed() | void | Postconditions: e == E(). | same as E() |
πe.seed(s) | void | Postconditions: e == E(s). | same as E(s) |
πe.seed(q) | void | Postconditions: e == E(q). | same as E(q) |
πe() | T | Advances e's state e toe e) and returnsGA(e). | per [rand.req.urng] |
πe.discard(z)242 | void | Advances e's state e to by any means equivalent to z consecutive calls e(). | no worse than the complexity of z consecutive calls e() |
πx == y | bool | This operator is an equivalence relation. With and as the infinite sequences of values that would be generated by repeated future calls to x() and y(), respectively, returns true if ; else returns false. | |
πx != y | bool | !(x == y). |
Table 126 β Random number distribution requirements [tab:rand.req.dist]
πExpression | Return type | Pre/post-condition | Complexity |
---|---|---|---|
πDβ::βresult_type | T | T is an arithmetic type. | |
πDβ::βparam_type | P | ||
πD() | Creates a distribution whose behavior is indistinguishable from that of any other newly default-constructed distribution of type D. | constant | |
πD(p) | Creates a distribution whose behavior is indistinguishable from that of a distribution newly constructed directly from the values used to construct p. | same as p's construction | |
πd.reset() | void | Subsequent uses of d do not depend on values produced by any engine prior to invoking reset. | constant |
πx.param() | P | Returns a valuep such that D(p).param() == p. | no worse than the complexity of D(p) |
πd.param(p) | void | Postconditions: d.param() == p. | no worse than the complexity of D(p) |
πd(g) | T | With , the sequence of numbers returned by successive invocations with the same object g is randomly distributed according to the associatedp(z |{p}) or function. | amortized constant number of invocations of g |
πd(g,p) | T | The sequence of numbers returned by successive invocations with the same objects g and p is randomly distributed according to the associatedp(z |{p}) or function. | amortized constant number of invocations of g |
πx.min() | T | Returns glb. | constant |
πx.max() | T | Returns lub. | constant |
πx == y | bool | This operator is an equivalence relation. Returns true if x.param() == y.param() and , where and are the infinite sequences of values that would be generated, respectively, by repeated future calls to x(g1) and y(g2) whenever g1 == g2. Otherwise returns false. | constant |
πx != y | bool | !(x == y). | same as x == y. |
Table 129 β Cpp17Clock requirements [tab:time.clock]
πExpression | Return type | Operational semantics |
---|---|---|
πC1β::βrep | An arithmetic type or a class emulating an arithmetic type | The representation type of C1β::βduration. |
πC1β::βperiod | a specialization of ratio | The tick period of the clock in seconds. |
πC1β::βduration | chronoβ::βduration<C1β::βrep, C1β::βperiod> | The duration type of the clock. |
πC1β::βtime_point | chronoβ::βtime_point<C1> or chronoβ::βtime_point<C2, C1β::βduration> | The time_point type of the clock. C1 and C2 shall refer to the same epoch. |
πC1β::βis_steady | const bool | true if t1 <= t2 is always true and the time between clock ticks is constant, otherwise false. |
πC1β::βnow() | C1β::βtime_point | Returns a time_point object representing the current point in time. |
Table 130 β Examples for fractional_width [tab:time.hms.width]
πDuration | fractional_width | Formatted fractional second output |
---|---|---|
πhours, minutes, and seconds | 0 | |
πmilliseconds | 3 | 0.001 |
πmicroseconds | 6 | 0.000001 |
πnanoseconds | 9 | 0.000000001 |
πduration<int, ratio<1, 2>> | 1 | 0.5 |
πduration<int, ratio<1, 3>> | 6 | 0.333333 |
πduration<int, ratio<1, 4>> | 2 | 0.25 |
πduration<int, ratio<1, 5>> | 1 | 0.2 |
πduration<int, ratio<1, 6>> | 6 | 0.166666 |
πduration<int, ratio<1, 7>> | 6 | 0.142857 |
πduration<int, ratio<1, 8>> | 3 | 0.125 |
πduration<int, ratio<1, 9>> | 6 | 0.111111 |
πduration<int, ratio<1, 10>> | 1 | 0.1 |
πduration<int, ratio<756, 625>> | 4 | 0.2096 |
Table 131 β Meaning of conversion specifiers [tab:time.format.spec]
πSpecifier | Replacement |
---|---|
π%a | The locale's abbreviated weekday name. If the value does not contain a valid weekday, an exception of type format_error is thrown. |
π%A | The locale's full weekday name. If the value does not contain a valid weekday, an exception of type format_error is thrown. |
π%b | The locale's abbreviated month name. If the value does not contain a valid month, an exception of type format_error is thrown. |
π%B | The locale's full month name. If the value does not contain a valid month, an exception of type format_error is thrown. |
π%c | The locale's date and time representation. The modified command %Ec produces the locale's alternate date and time representation. |
π%C | The year divided by 100 using floored division. If the result is a single decimal digit, it is prefixed with 0. The modified command %EC produces the locale's alternative representation of the century. |
π%d | The day of month as a decimal number. If the result is a single decimal digit, it is prefixed with 0. The modified command %Od produces the locale's alternative representation. |
π%D | Equivalent to %m/%d/%y. |
π%e | The day of month as a decimal number. If the result is a single decimal digit, it is prefixed with a space. The modified command %Oe produces the locale's alternative representation. |
π%F | Equivalent to %Y-%m-%d. |
π%g | The last two decimal digits of the calendar year as specified in ISO 8601-1:2019 for the week calendar. If the result is a single digit it is prefixed by 0. |
π%G | The calendar year as a decimal number, as specified in ISO 8601-1:2019 for the week calendar. If the result is less than four digits it is left-padded with 0 to four digits. |
π%h | Equivalent to %b. |
π%H | The hour (24-hour clock) as a decimal number. If the result is a single digit, it is prefixed with 0. The modified command %OH produces the locale's alternative representation. |
π%I | The hour (12-hour clock) as a decimal number. If the result is a single digit, it is prefixed with 0. The modified command %OI produces the locale's alternative representation. |
π%j | If the type being formatted is a specialization of duration, the decimal number of days without padding. Otherwise, the day of the year as a decimal number. January 1 is 001. If the result is less than three digits, it is left-padded with 0 to three digits. |
π%m | The month as a decimal number. Jan is 01. If the result is a single digit, it is prefixed with 0. The modified command %Om produces the locale's alternative representation. |
π%M | The minute as a decimal number. If the result is a single digit, it is prefixed with 0. The modified command %OM produces the locale's alternative representation. |
π%n | A new-line character. |
π%p | The locale's equivalent of the AM/PM designations associated with a 12-hour clock. |
π%q | The duration's unit suffix as specified in [time.duration.io]. |
π%Q | The duration's numeric value (as if extracted via .count()). |
π%r | The locale's 12-hour clock time. |
π%R | Equivalent to %H:%M. |
π%S | Seconds as a decimal number. If the number of seconds is less than 10, the result is prefixed with 0. If the precision of the input cannot be exactly represented with seconds, then the format is a decimal floating-point number with a fixed format and a precision matching that of the precision of the input (or to a microseconds precision if the conversion to floating-point decimal seconds cannot be made within 18 fractional digits). The character for the decimal point is localized according to the locale. The modified command %OS produces the locale's alternative representation. |
π%t | A horizontal-tab character. |
π%T | Equivalent to %H:%M:%S. |
π%u | The calendar day of week as a decimal number (1-7), as specified in ISO 8601-1:2019, where Monday is 1. The modified command %Ou produces the locale's alternative representation. |
π%U | The week number of the year as a decimal number. The first Sunday of the year is the first day of week 01. Days of the same year prior to that are in week 00. If the result is a single digit, it is prefixed with 0. The modified command %OU produces the locale's alternative representation. |
π%V | The calendar week of year as a decimal number, as specified in ISO 8601-1:2019 for the week calendar. If the result is a single digit, it is prefixed with 0. The modified command %OV produces the locale's alternative representation. |
π%w | The weekday as a decimal number (0-6), where Sunday is 0. The modified command %Ow produces the locale's alternative representation. |
π%W | The week number of the year as a decimal number. The first Monday of the year is the first day of week 01. Days of the same year prior to that are in week 00. If the result is a single digit, it is prefixed with 0. The modified command %OW produces the locale's alternative representation. |
π%x | The locale's date representation. The modified command %Ex produces the locale's alternate date representation. |
π%X | The locale's time representation. The modified command %EX produces the locale's alternate time representation. |
π%y | The last two decimal digits of the year. If the result is a single digit it is prefixed by 0. The modified command %Oy produces the locale's alternative representation. The modified command %Ey produces the locale's alternative representation of offset from %EC (year only). |
π%Y | The year as a decimal number. If the result is less than four digits it is left-padded with 0 to four digits. The modified command %EY produces the locale's alternative full year representation. |
π%z | The offset from UTC as specified in ISO 8601-1:2019, 5.3.4.1. For example -0430 refers to 4 hours 30 minutes behind UTC. If the offset is zero, +0000 is used. The modified commands %Ez and %Ozinsert a : between the hours and minutes: -04:30. If the offset information is not available, an exception of type format_error is thrown. |
π%Z | The time zone abbreviation. If the time zone abbreviation is not available, an exception of type format_error is thrown. |
π%% | A % character. |
Table 132 β Meaning of parse flags [tab:time.parse.spec]
πFlag | Parsed value |
---|---|
π%a | The locale's full or abbreviated case-insensitive weekday name. |
π%A | Equivalent to %a. |
π%b | The locale's full or abbreviated case-insensitive month name. |
π%B | Equivalent to %b. |
π%c | The locale's date and time representation. The modified command %Ec interprets the locale's alternate date and time representation. |
π%C | The century as a decimal number. The modified command %_N_C specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. The modified command %EC interprets the locale's alternative representation of the century. |
π%d | The day of the month as a decimal number. The modified command %_N_d specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. The modified command %Od interprets the locale's alternative representation of the day of the month. |
π%D | Equivalent to %m/%d/%y. |
π%e | Equivalent to %d and can be modified like %d. |
π%F | Equivalent to %Y-%m-%d. If modified with a width N, the width is applied to only %Y. |
π%g | The last two decimal digits of the calendar year, as specified in ISO 8601-1:2019 for the week calendar. The modified command %_N_g specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. |
π%G | The calendar year as a decimal number, as specified in ISO 8601-1:2019 for the week calendar. The modified command %_N_G specifies the maximum number of characters to read. If N is not specified, the default is 4. Leading zeroes are permitted but not required. |
π%h | Equivalent to %b. |
π%H | The hour (24-hour clock) as a decimal number. The modified command %_N_H specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. The modified command %OH interprets the locale's alternative representation. |
π%I | The hour (12-hour clock) as a decimal number. The modified command %_N_I specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. The modified command %OIinterprets the locale's alternative representation. |
π%j | If the type being parsed is a specialization of duration, a decimal number of days. Otherwise, the day of the year as a decimal number. January 1 is 1. In either case, the modified command %_N_j specifies the maximum number of characters to read. If N is not specified, the default is 3. Leading zeroes are permitted but not required. |
π%m | The month as a decimal number. January is 1. The modified command %_N_m specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. The modified command %Om interprets the locale's alternative representation. |
π%M | The minutes as a decimal number. The modified command %_N_M specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. The modified command %OM interprets the locale's alternative representation. |
π%n | Matches one whitespace character. [Note 1: %n, %t, and a space can be combined to match a wide range of whitespace patterns. For example,"%n " matches one or more whitespace characters, and"%n%t%t" matches one to three whitespace characters. β _end note_] |
π%p | The locale's equivalent of the AM/PM designations associated with a 12-hour clock. |
π%r | The locale's 12-hour clock time. |
π%R | Equivalent to %H:%M. |
π%S | The seconds as a decimal number. The modified command %_N_S specifies the maximum number of characters to read. If N is not specified, the default is 2 if the input time has a precision convertible to seconds. Otherwise the default width is determined by the decimal precision of the input and the field is interpreted as a long double in a fixed format. If encountered, the locale determines the decimal point character. Leading zeroes are permitted but not required. The modified command %OS interprets the locale's alternative representation. |
π%t | Matches zero or one whitespace characters. |
π%T | Equivalent to %H:%M:%S. |
π%u | The calendar day of week as a decimal number (1-7), as specified in ISO 8601-1:2019, where Monday is 1. The modified command %_N_u specifies the maximum number of characters to read. If N is not specified, the default is 1. Leading zeroes are permitted but not required. |
π%U | The week number of the year as a decimal number. The first Sunday of the year is the first day of week 01. Days of the same year prior to that are in week 00. The modified command %_N_U specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. The modified command %OU interprets the locale's alternative representation. |
π%V | The calendar week of year as a decimal number, as specified in ISO 8601-1:2019 for the week calendar. The modified command %_N_V specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. |
π%w | The weekday as a decimal number (0-6), where Sunday is 0. The modified command %_N_w specifies the maximum number of characters to read. If N is not specified, the default is 1. Leading zeroes are permitted but not required. The modified command %Ow interprets the locale's alternative representation. |
π%W | The week number of the year as a decimal number. The first Monday of the year is the first day of week 01. Days of the same year prior to that are in week 00. The modified command %_N_W specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. The modified command %OW interprets the locale's alternative representation. |
π%x | The locale's date representation. The modified command %Ex interprets the locale's alternate date representation. |
π%X | The locale's time representation. The modified command %EX interprets the locale's alternate time representation. |
π%y | The last two decimal digits of the year. If the century is not otherwise specified (e.g., with %C), values in the range [69, 99] are presumed to refer to the years 1969 to 1999, and values in the range [00, 68] are presumed to refer to the years 2000 to 2068. The modified command %_N_y specifies the maximum number of characters to read. If N is not specified, the default is 2. Leading zeroes are permitted but not required. The modified commands %Ey and %Oy interpret the locale's alternative representation. |
π%Y | The year as a decimal number. The modified command %_N_Y specifies the maximum number of characters to read. If N is not specified, the default is 4. Leading zeroes are permitted but not required. The modified command %EY interprets the locale's alternative representation. |
π%z | The offset from UTC in the format [+|-]hh[mm]. For example -0430 refers to 4 hours 30 minutes behind UTC, and 04 refers to 4 hours ahead of UTC. The modified commands %Ez and %Ozparse a : between the hours and minutes and render leading zeroes on the hour field optional:[+ |
π%Z | The time zone abbreviation or name. A single word is parsed. This word can only contain characters from the basic character set ([lex.charset]) that are alphanumeric, or one of'_', '/', '-', or '+'. |
π%% | A % character is extracted. |
Table 134 β fmtflags effects [tab:ios.fmtflags]
πElement | Effect(s) if set |
---|---|
πboolalpha | insert and extract bool type in alphabetic format |
πdec | converts integer input or generates integer output in decimal base |
πfixed | generate floating-point output in fixed-point notation |
πhex | converts integer input or generates integer output in hexadecimal base |
πinternal | adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is designated |
πleft | adds fill characters on the right (final positions) of certain generated output |
πoct | converts integer input or generates integer output in octal base |
πright | adds fill characters on the left (initial positions) of certain generated output |
πscientific | generates floating-point output in scientific notation |
πshowbase | generates a prefix indicating the numeric base of generated integer output |
πshowpoint | generates a decimal-point character unconditionally in generated floating-point output |
πshowpos | generates a + sign in non-negative generated numeric output |
πskipws | skips leading whitespace before certain input operations |
πunitbuf | flushes output after each output operation |
πuppercase | replaces certain lowercase letters with their uppercase equivalents in generated output |
Table 136 β iostate effects [tab:ios.iostate]
indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file); |
---|
indicates that an input operation reached the end of an input sequence; |
indicates that an input operation failed to read the expected characters, or that an output operation failed to generate the desired characters. |
Table 137 β openmode effects [tab:ios.openmode]
πElement | Effect(s) if set |
---|---|
πapp | seek to end before each write |
πate | open and seek to end immediately after opening |
πbinary | perform input and output in binary mode (as opposed to text mode) |
πin | open for input |
πnoreplace | open in exclusive mode |
πout | open for output |
πtrunc | truncate an existing stream when opening |
Table 138 β seekdir effects [tab:ios.seekdir]
request a seek (for subsequent input or output) relative to the beginning of the stream |
---|
request a seek relative to the current position within the sequence |
request a seek relative to the current end of the sequence |
Table 139 β Position type requirements [tab:fpos.operations]
πExpression | Return type | Operational | Assertion/note |
---|---|---|---|
π | semantics | pre-/post-condition | |
πP(o) | P | converts from offset | Effects: Value-initializes the state object. |
πP p(o);P p = o; | Effects: Value-initializes the state object. Postconditions: p == P(o) is true. | ||
πP() | P | P(0) | |
πP p; | P p(0); | ||
πO(p) | streamoff | converts to offset | P(O(p)) == p |
πp == q | bool | Remarks: For any two values o and o2, if p is obtained from o converted to P or from a copy of such P value and if q is obtained from o2 converted to P or from a copy of such P value, then p == q is true only if o == o2 is true. | |
πp != q | bool | !(p == q) | |
πp + o | P | + offset | Remarks: With ql = p + o;, then: ql - o == p |
πpl += o | P& | += offset | Remarks: With ql = pl; before the +=, then:pl - o == ql |
πp - o | P | - offset | Remarks: With ql = p - o;, then: ql + o == p |
πpl -= o | P& | -= offset | Remarks: With ql = pl; before the -=, then:pl + o == ql |
πo + p | convertible to P | p + o | P(o + p) == p + o |
πp - q | streamoff | distance | p == q + (p - q) |
Table 140 β basic_iosβ::βinit() effects [tab:basic.ios.cons]
πElement | Value |
---|---|
πrdbuf() | sb |
πtie() | 0 |
πrdstate() | goodbit if sb is not a null pointer, otherwise badbit. |
πexceptions() | goodbit |
πflags() | skipws | dec |
πwidth() | 0 |
πprecision() | 6 |
πfill() | widen(' ') |
πgetloc() | a copy of the value returned by locale() |
πiarray | a null pointer |
πparray | a null pointer |
Table 141 β basic_iosβ::βcopyfmt() effects [tab:basic.ios.copyfmt]
πElement | Value |
---|---|
πrdbuf() | unchanged |
πtie() | rhs.tie() |
πrdstate() | unchanged |
πexceptions() | rhs.exceptions() |
πflags() | rhs.flags() |
πwidth() | rhs.width() |
πprecision() | rhs.precision() |
πfill() | rhs.fill() |
πgetloc() | rhs.getloc() |
Table 142 β seekoff positioning [tab:stringbuf.seekoff.pos]
ios_baseβ::βin is set in which | positions the input sequence |
---|---|
ios_baseβ::βout is set in which | positions the output sequence |
both ios_baseβ::βin and ios_baseβ::βout are set in which and eitherway == ios_baseβ::βbeg orway == ios_baseβ::βend | positions both the input and the output sequences |
the positioning operation fails. |
Table 143 β newoff values [tab:stringbuf.seekoff.newoff]
the next pointer minus the beginning pointer (xnext - xbeg). |
---|
the high mark pointer minus the beginning pointer (high_mark - xbeg). |
Table 144 β File open modes [tab:filebuf.open.modes]
πios_base flag combination | stdio equivalent | ||||
---|---|---|---|---|---|
πbinary | in | out | trunc | app | noreplace |
π | + | "w" | |||
π | + | + | "wx" | ||
π | + | + | "w" | ||
π | + | + | + | "wx" | |
π | + | + | "a" | ||
π | + | "a" | |||
π | + | "r" | |||
π | + | + | "r+" | ||
π | + | + | + | "w+" | |
π | + | + | + | + | "w+x" |
π | + | + | + | "a+" | |
π | + | + | "a+" | ||
π+ | + | "wb" | |||
π+ | + | + | "wbx" | ||
π+ | + | + | "wb" | ||
π+ | + | + | + | "wbx" | |
π+ | + | + | "ab" | ||
π+ | + | "ab" | |||
π+ | + | "rb" | |||
π+ | + | + | "r+b" | ||
π+ | + | + | + | "w+b" | |
π+ | + | + | + | + | "w+bx" |
π+ | + | + | + | "a+b" | |
π+ | + | + | "a+b" |
Table 146 β Enum pathβ::βformat [tab:fs.enum.path.format]
The native pathname format. |
---|
The generic pathname format. |
The interpretation of the format of the character sequence isimplementation-defined. The implementation may inspect the content of the character sequence to determine the format.Recommended practice: For POSIX-based systems, native and generic formats are equivalent and the character sequence should always be interpreted in the same way. |
Table 147 β Enum class file_type [tab:fs.enum.file.type]
πConstant | Meaning |
---|---|
πnone | The type of the file has not been determined or an error occurred while trying to determine the type. |
πnot_found | Pseudo-type indicating the file was not found. [Note 1: The file not being found is not considered an error while determining the type of a file. β _end note_] |
πregular | Regular file |
πdirectory | Directory file |
πsymlink | Symbolic link file |
πblock | Block special file |
πcharacter | Character special file |
πfifo | FIFO or pipe file |
πsocket | Socket file |
πimplementation-defined | Implementations that support file systems having file types in addition to the above file_type types shall supplyimplementation-definedfile_type constants to separately identify each of those additional file types |
πunknown | The file exists but the type cannot be determined |
Table 148 β Enum class copy_options [tab:fs.enum.copy.opts]
πOption group controlling copy_file function effects for existing target files | |
---|---|
πConstant | Meaning |
πnone | (Default) Error; file already exists. |
πskip_existing | Do not overwrite existing file, do not report an error. |
πoverwrite_existing | Overwrite the existing file. |
πupdate_existing | Overwrite the existing file if it is older than the replacement file. |
πOption group controlling copy function effects for subdirectories | |
πConstant | Meaning |
πnone | (Default) Do not copy subdirectories. |
πrecursive | Recursively copy subdirectories and their contents. |
πOption group controlling copy function effects for symbolic links | |
πConstant | Meaning |
πnone | (Default) Follow symbolic links. |
πcopy_symlinks | Copy symbolic links as symbolic links rather than copying the files that they point to. |
πskip_symlinks | Ignore symbolic links. |
πOption group controlling copy function effects for choosing the form of copying | |
πConstant | Meaning |
πnone | (Default) Copy content. |
πdirectories_only | Copy directory structure only, do not copy non-directory files. |
πcreate_symlinks | Make symbolic links instead of copies of files. The source path shall be an absolute path unless the destination path is in the current directory. |
πcreate_hard_links | Make hard links instead of copies of files. |
Table 149 β Enum class perms [tab:fs.enum.perms]
πName | Value | POSIX | Definition or notes | |
---|---|---|---|---|
π | (octal) | macro | ||
πnone | 0 | There are no permissions set for the file. | ||
πowner_read | 0400 | S_IRUSR | Read permission, owner | |
πowner_write | 0200 | S_IWUSR | Write permission, owner | |
πowner_exec | 0100 | S_IXUSR | Execute/search permission, owner | |
πowner_all | 0700 | S_IRWXU | Read, write, execute/search by owner;owner_read | owner_write | owner_exec |
πgroup_read | 040 | S_IRGRP | Read permission, group | |
πgroup_write | 020 | S_IWGRP | Write permission, group | |
πgroup_exec | 010 | S_IXGRP | Execute/search permission, group | |
πgroup_all | 070 | S_IRWXG | Read, write, execute/search by group;group_read | group_write | group_exec |
πothers_read | 04 | S_IROTH | Read permission, others | |
πothers_write | 02 | S_IWOTH | Write permission, others | |
πothers_exec | 01 | S_IXOTH | Execute/search permission, others | |
πothers_all | 07 | S_IRWXO | Read, write, execute/search by others;others_read | others_write | others_exec |
πall | 0777 | owner_all | group_all | others_all | |
πset_uid | 04000 | S_ISUID | Set-user-ID on execution | |
πset_gid | 02000 | S_ISGID | Set-group-ID on execution | |
πsticky_bit | 01000 | S_ISVTX | Operating system dependent. | |
πmask | 07777 | all | set_uid | set_gid | sticky_bit |
πunknown | 0xFFFF | The permissions are not known, such as when a file_status object is created without specifying the permissions |
Table 150 β Enum class perm_options [tab:fs.enum.perm.opts]
permissions shall replace the file's permission bits with perm |
---|
permissions shall replace the file's permission bits with the bitwise or of perm and the file's current permission bits. |
permissions shall replace the file's permission bits with the bitwise and of the complement of perm and the file's current permission bits. |
permissions shall change the permissions of a symbolic link itself rather than the permissions of the file the link resolves to. |
Table 153 β Atomic arithmetic computations [tab:atomic.types.int.comp]
πkey | Op | Computation | key | Op | Computation |
---|---|---|---|---|---|
πadd | + | addition | and | & | bitwise and |
πsub | - | subtraction | or | | | bitwise inclusive or |
πmax | maximum | xor | ^ | bitwise exclusive or | |
πmin | minimum |
Table 156 β Types of customization point objects in the execution control library [tab:exec.pos]
πCustomization point | Purpose | Examples |
---|---|---|
πobject type | ||
πcore | provide core execution functionality, and connection between core components | e.g., connect, start |
πcompletion functions | called by senders to announce the completion of the work (success, error, or cancellation) | set_value, set_error, set_stopped |
πsenders | allow the specialization of the provided sender algorithms | sender factories (e.g., schedule, just, read_env)sender adaptors (e.g., continues_on, then, let_value)sender consumers (e.g., sync_wait) |
πqueries | allow querying different properties of objects | general queries (e.g., get_allocator, get_stop_token)environment queries (e.g., get_scheduler, get_delegation_scheduler)scheduler queries (e.g., get_forward_progress_guarantee)sender attribute queries (e.g., get_completion_scheduler) |