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