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