1 | // -*- C++ -*- |
2 | //===--------------------------- inttypes.h -------------------------------===// |
3 | // |
4 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
5 | // See https://llvm.org/LICENSE.txt for license information. |
6 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
7 | // |
8 | //===----------------------------------------------------------------------===// |
9 | |
10 | #ifndef _LIBCPP_INTTYPES_H |
11 | // AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T |
12 | // is defined until an inclusion of it without _STD_TYPES_T occurs, in which |
13 | // case the header guard macro is defined. |
14 | #if !defined(_AIX) || !defined(_STD_TYPES_T) |
15 | #define _LIBCPP_INTTYPES_H |
16 | #endif // _STD_TYPES_T |
17 | |
18 | /* |
19 | inttypes.h synopsis |
20 | |
21 | This entire header is C99 / C++0X |
22 | |
23 | #include <stdint.h> // <cinttypes> includes <cstdint> |
24 | |
25 | Macros: |
26 | |
27 | PRId8 |
28 | PRId16 |
29 | PRId32 |
30 | PRId64 |
31 | |
32 | PRIdLEAST8 |
33 | PRIdLEAST16 |
34 | PRIdLEAST32 |
35 | PRIdLEAST64 |
36 | |
37 | PRIdFAST8 |
38 | PRIdFAST16 |
39 | PRIdFAST32 |
40 | PRIdFAST64 |
41 | |
42 | PRIdMAX |
43 | PRIdPTR |
44 | |
45 | PRIi8 |
46 | PRIi16 |
47 | PRIi32 |
48 | PRIi64 |
49 | |
50 | PRIiLEAST8 |
51 | PRIiLEAST16 |
52 | PRIiLEAST32 |
53 | PRIiLEAST64 |
54 | |
55 | PRIiFAST8 |
56 | PRIiFAST16 |
57 | PRIiFAST32 |
58 | PRIiFAST64 |
59 | |
60 | PRIiMAX |
61 | PRIiPTR |
62 | |
63 | PRIo8 |
64 | PRIo16 |
65 | PRIo32 |
66 | PRIo64 |
67 | |
68 | PRIoLEAST8 |
69 | PRIoLEAST16 |
70 | PRIoLEAST32 |
71 | PRIoLEAST64 |
72 | |
73 | PRIoFAST8 |
74 | PRIoFAST16 |
75 | PRIoFAST32 |
76 | PRIoFAST64 |
77 | |
78 | PRIoMAX |
79 | PRIoPTR |
80 | |
81 | PRIu8 |
82 | PRIu16 |
83 | PRIu32 |
84 | PRIu64 |
85 | |
86 | PRIuLEAST8 |
87 | PRIuLEAST16 |
88 | PRIuLEAST32 |
89 | PRIuLEAST64 |
90 | |
91 | PRIuFAST8 |
92 | PRIuFAST16 |
93 | PRIuFAST32 |
94 | PRIuFAST64 |
95 | |
96 | PRIuMAX |
97 | PRIuPTR |
98 | |
99 | PRIx8 |
100 | PRIx16 |
101 | PRIx32 |
102 | PRIx64 |
103 | |
104 | PRIxLEAST8 |
105 | PRIxLEAST16 |
106 | PRIxLEAST32 |
107 | PRIxLEAST64 |
108 | |
109 | PRIxFAST8 |
110 | PRIxFAST16 |
111 | PRIxFAST32 |
112 | PRIxFAST64 |
113 | |
114 | PRIxMAX |
115 | PRIxPTR |
116 | |
117 | PRIX8 |
118 | PRIX16 |
119 | PRIX32 |
120 | PRIX64 |
121 | |
122 | PRIXLEAST8 |
123 | PRIXLEAST16 |
124 | PRIXLEAST32 |
125 | PRIXLEAST64 |
126 | |
127 | PRIXFAST8 |
128 | PRIXFAST16 |
129 | PRIXFAST32 |
130 | PRIXFAST64 |
131 | |
132 | PRIXMAX |
133 | PRIXPTR |
134 | |
135 | SCNd8 |
136 | SCNd16 |
137 | SCNd32 |
138 | SCNd64 |
139 | |
140 | SCNdLEAST8 |
141 | SCNdLEAST16 |
142 | SCNdLEAST32 |
143 | SCNdLEAST64 |
144 | |
145 | SCNdFAST8 |
146 | SCNdFAST16 |
147 | SCNdFAST32 |
148 | SCNdFAST64 |
149 | |
150 | SCNdMAX |
151 | SCNdPTR |
152 | |
153 | SCNi8 |
154 | SCNi16 |
155 | SCNi32 |
156 | SCNi64 |
157 | |
158 | SCNiLEAST8 |
159 | SCNiLEAST16 |
160 | SCNiLEAST32 |
161 | SCNiLEAST64 |
162 | |
163 | SCNiFAST8 |
164 | SCNiFAST16 |
165 | SCNiFAST32 |
166 | SCNiFAST64 |
167 | |
168 | SCNiMAX |
169 | SCNiPTR |
170 | |
171 | SCNo8 |
172 | SCNo16 |
173 | SCNo32 |
174 | SCNo64 |
175 | |
176 | SCNoLEAST8 |
177 | SCNoLEAST16 |
178 | SCNoLEAST32 |
179 | SCNoLEAST64 |
180 | |
181 | SCNoFAST8 |
182 | SCNoFAST16 |
183 | SCNoFAST32 |
184 | SCNoFAST64 |
185 | |
186 | SCNoMAX |
187 | SCNoPTR |
188 | |
189 | SCNu8 |
190 | SCNu16 |
191 | SCNu32 |
192 | SCNu64 |
193 | |
194 | SCNuLEAST8 |
195 | SCNuLEAST16 |
196 | SCNuLEAST32 |
197 | SCNuLEAST64 |
198 | |
199 | SCNuFAST8 |
200 | SCNuFAST16 |
201 | SCNuFAST32 |
202 | SCNuFAST64 |
203 | |
204 | SCNuMAX |
205 | SCNuPTR |
206 | |
207 | SCNx8 |
208 | SCNx16 |
209 | SCNx32 |
210 | SCNx64 |
211 | |
212 | SCNxLEAST8 |
213 | SCNxLEAST16 |
214 | SCNxLEAST32 |
215 | SCNxLEAST64 |
216 | |
217 | SCNxFAST8 |
218 | SCNxFAST16 |
219 | SCNxFAST32 |
220 | SCNxFAST64 |
221 | |
222 | SCNxMAX |
223 | SCNxPTR |
224 | |
225 | Types: |
226 | |
227 | imaxdiv_t |
228 | |
229 | intmax_t imaxabs(intmax_t j); |
230 | imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom); |
231 | intmax_t strtoimax(const char* restrict nptr, char** restrict endptr, int base); |
232 | uintmax_t strtoumax(const char* restrict nptr, char** restrict endptr, int base); |
233 | intmax_t wcstoimax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); |
234 | uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); |
235 | |
236 | */ |
237 | |
238 | #include <__config> |
239 | |
240 | #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
241 | #pragma GCC system_header |
242 | #endif |
243 | |
244 | /* C99 stdlib (e.g. glibc < 2.18) does not provide format macros needed |
245 | for C++11 unless __STDC_FORMAT_MACROS is defined |
246 | */ |
247 | #if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS) |
248 | # define __STDC_FORMAT_MACROS |
249 | #endif |
250 | |
251 | #include_next <inttypes.h> |
252 | |
253 | #ifdef __cplusplus |
254 | |
255 | #include <stdint.h> |
256 | |
257 | #undef imaxabs |
258 | #undef imaxdiv |
259 | |
260 | #endif // __cplusplus |
261 | |
262 | #endif // _LIBCPP_INTTYPES_H |
263 | |