269 lines · c
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-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCPP_INTTYPES_H11// AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T12// is defined until an inclusion of it without _STD_TYPES_T occurs, in which13// case the header guard macro is defined.14#if !defined(_AIX) || !defined(_STD_TYPES_T)15# define _LIBCPP_INTTYPES_H16#endif // _STD_TYPES_T17 18/*19 inttypes.h synopsis20 21This entire header is C99 / C++0X22 23#include <stdint.h> // <cinttypes> includes <cstdint>24 25Macros:26 27 PRId828 PRId1629 PRId3230 PRId6431 32 PRIdLEAST833 PRIdLEAST1634 PRIdLEAST3235 PRIdLEAST6436 37 PRIdFAST838 PRIdFAST1639 PRIdFAST3240 PRIdFAST6441 42 PRIdMAX43 PRIdPTR44 45 PRIi846 PRIi1647 PRIi3248 PRIi6449 50 PRIiLEAST851 PRIiLEAST1652 PRIiLEAST3253 PRIiLEAST6454 55 PRIiFAST856 PRIiFAST1657 PRIiFAST3258 PRIiFAST6459 60 PRIiMAX61 PRIiPTR62 63 PRIo864 PRIo1665 PRIo3266 PRIo6467 68 PRIoLEAST869 PRIoLEAST1670 PRIoLEAST3271 PRIoLEAST6472 73 PRIoFAST874 PRIoFAST1675 PRIoFAST3276 PRIoFAST6477 78 PRIoMAX79 PRIoPTR80 81 PRIu882 PRIu1683 PRIu3284 PRIu6485 86 PRIuLEAST887 PRIuLEAST1688 PRIuLEAST3289 PRIuLEAST6490 91 PRIuFAST892 PRIuFAST1693 PRIuFAST3294 PRIuFAST6495 96 PRIuMAX97 PRIuPTR98 99 PRIx8100 PRIx16101 PRIx32102 PRIx64103 104 PRIxLEAST8105 PRIxLEAST16106 PRIxLEAST32107 PRIxLEAST64108 109 PRIxFAST8110 PRIxFAST16111 PRIxFAST32112 PRIxFAST64113 114 PRIxMAX115 PRIxPTR116 117 PRIX8118 PRIX16119 PRIX32120 PRIX64121 122 PRIXLEAST8123 PRIXLEAST16124 PRIXLEAST32125 PRIXLEAST64126 127 PRIXFAST8128 PRIXFAST16129 PRIXFAST32130 PRIXFAST64131 132 PRIXMAX133 PRIXPTR134 135 SCNd8136 SCNd16137 SCNd32138 SCNd64139 140 SCNdLEAST8141 SCNdLEAST16142 SCNdLEAST32143 SCNdLEAST64144 145 SCNdFAST8146 SCNdFAST16147 SCNdFAST32148 SCNdFAST64149 150 SCNdMAX151 SCNdPTR152 153 SCNi8154 SCNi16155 SCNi32156 SCNi64157 158 SCNiLEAST8159 SCNiLEAST16160 SCNiLEAST32161 SCNiLEAST64162 163 SCNiFAST8164 SCNiFAST16165 SCNiFAST32166 SCNiFAST64167 168 SCNiMAX169 SCNiPTR170 171 SCNo8172 SCNo16173 SCNo32174 SCNo64175 176 SCNoLEAST8177 SCNoLEAST16178 SCNoLEAST32179 SCNoLEAST64180 181 SCNoFAST8182 SCNoFAST16183 SCNoFAST32184 SCNoFAST64185 186 SCNoMAX187 SCNoPTR188 189 SCNu8190 SCNu16191 SCNu32192 SCNu64193 194 SCNuLEAST8195 SCNuLEAST16196 SCNuLEAST32197 SCNuLEAST64198 199 SCNuFAST8200 SCNuFAST16201 SCNuFAST32202 SCNuFAST64203 204 SCNuMAX205 SCNuPTR206 207 SCNx8208 SCNx16209 SCNx32210 SCNx64211 212 SCNxLEAST8213 SCNxLEAST16214 SCNxLEAST32215 SCNxLEAST64216 217 SCNxFAST8218 SCNxFAST16219 SCNxFAST32220 SCNxFAST64221 222 SCNxMAX223 SCNxPTR224 225Types:226 227 imaxdiv_t228 229intmax_t imaxabs(intmax_t j);230imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);231intmax_t strtoimax(const char* restrict nptr, char** restrict endptr, int base);232uintmax_t strtoumax(const char* restrict nptr, char** restrict endptr, int base);233intmax_t wcstoimax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);234uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);235 236*/237 238#if defined(__cplusplus) && __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)239# include <__cxx03/__config>240#else241# include <__config>242#endif243 244#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)245# pragma GCC system_header246#endif247 248/* C99 stdlib (e.g. glibc < 2.18) does not provide format macros needed249 for C++11 unless __STDC_FORMAT_MACROS is defined250*/251#if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS)252# define __STDC_FORMAT_MACROS253#endif254 255#if __has_include_next(<inttypes.h>)256# include_next <inttypes.h>257#endif258 259#ifdef __cplusplus260 261# include <stdint.h>262 263# undef imaxabs264# undef imaxdiv265 266#endif // __cplusplus267 268#endif // _LIBCPP_INTTYPES_H269