From Jason Turner

[support.arith.types]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp8wo9h8_9/{from.md → to.md} +134 -0
tmp/tmp8wo9h8_9/{from.md → to.md} RENAMED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Arithmetic types <a id="support.arith.types">[[support.arith.types]]</a>
2
+
3
+ ### Header `<cstdint>` synopsis <a id="cstdint.syn">[[cstdint.syn]]</a>
4
+
5
+ The header `<cstdint>` supplies integer types having specified widths,
6
+ and macros that specify limits of integer types.
7
+
8
+ ``` cpp
9
+ // all freestanding
10
+ namespace std {
11
+ using int8_t = signed integer type; // optional
12
+ using int16_t = signed integer type; // optional
13
+ using int32_t = signed integer type; // optional
14
+ using int64_t = signed integer type; // optional
15
+ using intN_t = see below; // optional
16
+
17
+ using int_fast8_t = signed integer type;
18
+ using int_fast16_t = signed integer type;
19
+ using int_fast32_t = signed integer type;
20
+ using int_fast64_t = signed integer type;
21
+ using int_fastN_t = see below; // optional
22
+
23
+ using int_least8_t = signed integer type;
24
+ using int_least16_t = signed integer type;
25
+ using int_least32_t = signed integer type;
26
+ using int_least64_t = signed integer type;
27
+ using int_leastN_t = see below; // optional
28
+
29
+ using intmax_t = signed integer type;
30
+ using intptr_t = signed integer type; // optional
31
+
32
+ using uint8_t = unsigned integer type; // optional
33
+ using uint16_t = unsigned integer type; // optional
34
+ using uint32_t = unsigned integer type; // optional
35
+ using uint64_t = unsigned integer type; // optional
36
+ using uintN_t = see below; // optional
37
+
38
+ using uint_fast8_t = unsigned integer type;
39
+ using uint_fast16_t = unsigned integer type;
40
+ using uint_fast32_t = unsigned integer type;
41
+ using uint_fast64_t = unsigned integer type;
42
+ using uint_fastN_t = see below; // optional
43
+
44
+ using uint_least8_t = unsigned integer type;
45
+ using uint_least16_t = unsigned integer type;
46
+ using uint_least32_t = unsigned integer type;
47
+ using uint_least64_t = unsigned integer type;
48
+ using uint_leastN_t = see below; // optional
49
+
50
+ using uintmax_t = unsigned integer type;
51
+ using uintptr_t = unsigned integer type; // optional
52
+ }
53
+
54
+ #define INTN_MIN see below
55
+ #define INTN_MAX see below
56
+ #define UINTN_MAX see below
57
+
58
+ #define INT_FASTN_MIN see below
59
+ #define INT_FASTN_MAX see below
60
+ #define UINT_FASTN_MAX see below
61
+
62
+ #define INT_LEASTN_MIN see below
63
+ #define INT_LEASTN_MAX see below
64
+ #define UINT_LEASTN_MAX see below
65
+
66
+ #define INTMAX_MIN see below
67
+ #define INTMAX_MAX see below
68
+ #define UINTMAX_MAX see below
69
+
70
+ #define INTPTR_MIN see below // optional
71
+ #define INTPTR_MAX see below // optional
72
+ #define UINTPTR_MAX see below // optional
73
+
74
+ #define PTRDIFF_MIN see below
75
+ #define PTRDIFF_MAX see below
76
+ #define SIZE_MAX see below
77
+
78
+ #define SIG_ATOMIC_MIN see below
79
+ #define SIG_ATOMIC_MAX see below
80
+
81
+ #define WCHAR_MIN see below
82
+ #define WCHAR_MAX see below
83
+
84
+ #define WINT_MIN see below
85
+ #define WINT_MAX see below
86
+
87
+ #define INTN_C(value) see below
88
+ #define UINTN_C(value) see below
89
+ #define INTMAX_C(value) see below
90
+ #define UINTMAX_C(value) see below
91
+ ```
92
+
93
+ The header defines all types and macros the same as the C standard
94
+ library header `<stdint.h>`.
95
+
96
+ See also: ISO C 7.20
97
+
98
+ All types that use the placeholder *N* are optional when *N* is not `8`,
99
+ `16`, `32`, or `64`. The exact-width types `intN_t` and `uintN_t` for
100
+ *N* = `8`, `16`, `32`, and `64` are also optional; however, if an
101
+ implementation defines integer types with the corresponding width and no
102
+ padding bits, it defines the corresponding *typedef-name*s. Each of the
103
+ macros listed in this subclause is defined if and only if the
104
+ implementation defines the corresponding *typedef-name*.
105
+
106
+ [*Note 1*: The macros `INTN_C` and `UINTN_C` correspond to the
107
+ *typedef-name*s `int_leastN_t` and `uint_leastN_t`,
108
+ respectively. — *end note*]
109
+
110
+ ### Header `<stdfloat>` synopsis <a id="stdfloat.syn">[[stdfloat.syn]]</a>
111
+
112
+ The header `<stdfloat>` defines type aliases for the optional extended
113
+ floating-point types that are specified in [[basic.extended.fp]].
114
+
115
+ ``` cpp
116
+ namespace std {
117
+ #if defined(__STDCPP_FLOAT16_T__)
118
+ using float16_t = implementation-defined; // see [basic.extended.fp]
119
+ #endif
120
+ #if defined(__STDCPP_FLOAT32_T__)
121
+ using float32_t = implementation-defined; // see [basic.extended.fp]
122
+ #endif
123
+ #if defined(__STDCPP_FLOAT64_T__)
124
+ using float64_t = implementation-defined; // see [basic.extended.fp]
125
+ #endif
126
+ #if defined(__STDCPP_FLOAT128_T__)
127
+ using float128_t = implementation-defined; // see [basic.extended.fp]
128
+ #endif
129
+ #if defined(__STDCPP_BFLOAT16_T__)
130
+ using bfloat16_t = implementation-defined; // see [basic.extended.fp]
131
+ #endif
132
+ }
133
+ ```
134
+