summaryrefslogtreecommitdiff
path: root/lib/libcxx/include/inttypes.h
blob: 058f54b5161f8e3712da55013f9602184410a0df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
// -*- C++ -*-
//===--------------------------- inttypes.h -------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef _LIBCPP_INTTYPES_H
#define _LIBCPP_INTTYPES_H

/*
    inttypes.h synopsis

This entire header is C99 / C++0X

#include <stdint.h>  // <cinttypes> includes <cstdint>

Macros:

    PRId8
    PRId16
    PRId32
    PRId64

    PRIdLEAST8
    PRIdLEAST16
    PRIdLEAST32
    PRIdLEAST64

    PRIdFAST8
    PRIdFAST16
    PRIdFAST32
    PRIdFAST64

    PRIdMAX
    PRIdPTR

    PRIi8
    PRIi16
    PRIi32
    PRIi64

    PRIiLEAST8
    PRIiLEAST16
    PRIiLEAST32
    PRIiLEAST64

    PRIiFAST8
    PRIiFAST16
    PRIiFAST32
    PRIiFAST64

    PRIiMAX
    PRIiPTR

    PRIo8
    PRIo16
    PRIo32
    PRIo64

    PRIoLEAST8
    PRIoLEAST16
    PRIoLEAST32
    PRIoLEAST64

    PRIoFAST8
    PRIoFAST16
    PRIoFAST32
    PRIoFAST64

    PRIoMAX
    PRIoPTR

    PRIu8
    PRIu16
    PRIu32
    PRIu64

    PRIuLEAST8
    PRIuLEAST16
    PRIuLEAST32
    PRIuLEAST64

    PRIuFAST8
    PRIuFAST16
    PRIuFAST32
    PRIuFAST64

    PRIuMAX
    PRIuPTR

    PRIx8
    PRIx16
    PRIx32
    PRIx64

    PRIxLEAST8
    PRIxLEAST16
    PRIxLEAST32
    PRIxLEAST64

    PRIxFAST8
    PRIxFAST16
    PRIxFAST32
    PRIxFAST64

    PRIxMAX
    PRIxPTR

    PRIX8
    PRIX16
    PRIX32
    PRIX64

    PRIXLEAST8
    PRIXLEAST16
    PRIXLEAST32
    PRIXLEAST64

    PRIXFAST8
    PRIXFAST16
    PRIXFAST32
    PRIXFAST64

    PRIXMAX
    PRIXPTR

    SCNd8
    SCNd16
    SCNd32
    SCNd64

    SCNdLEAST8
    SCNdLEAST16
    SCNdLEAST32
    SCNdLEAST64

    SCNdFAST8
    SCNdFAST16
    SCNdFAST32
    SCNdFAST64

    SCNdMAX
    SCNdPTR

    SCNi8
    SCNi16
    SCNi32
    SCNi64

    SCNiLEAST8
    SCNiLEAST16
    SCNiLEAST32
    SCNiLEAST64

    SCNiFAST8
    SCNiFAST16
    SCNiFAST32
    SCNiFAST64

    SCNiMAX
    SCNiPTR

    SCNo8
    SCNo16
    SCNo32
    SCNo64

    SCNoLEAST8
    SCNoLEAST16
    SCNoLEAST32
    SCNoLEAST64

    SCNoFAST8
    SCNoFAST16
    SCNoFAST32
    SCNoFAST64

    SCNoMAX
    SCNoPTR

    SCNu8
    SCNu16
    SCNu32
    SCNu64

    SCNuLEAST8
    SCNuLEAST16
    SCNuLEAST32
    SCNuLEAST64

    SCNuFAST8
    SCNuFAST16
    SCNuFAST32
    SCNuFAST64

    SCNuMAX
    SCNuPTR

    SCNx8
    SCNx16
    SCNx32
    SCNx64

    SCNxLEAST8
    SCNxLEAST16
    SCNxLEAST32
    SCNxLEAST64

    SCNxFAST8
    SCNxFAST16
    SCNxFAST32
    SCNxFAST64

    SCNxMAX
    SCNxPTR

Types:

    imaxdiv_t

intmax_t  imaxabs(intmax_t j);
imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
intmax_t  strtoimax(const char* restrict nptr, char** restrict endptr, int base);
uintmax_t strtoumax(const char* restrict nptr, char** restrict endptr, int base);
intmax_t  wcstoimax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);
uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);

*/

#include <__config>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif

/* C99 stdlib (e.g. glibc < 2.18) does not provide format macros needed
   for C++11 unless __STDC_FORMAT_MACROS is defined
*/
#if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS)
#   define __STDC_FORMAT_MACROS
#endif

#include_next <inttypes.h>

#ifdef __cplusplus

#include <stdint.h>

#undef imaxabs
#undef imaxdiv

#endif // __cplusplus

#endif  // _LIBCPP_INTTYPES_H