1 /** 2 * D header file for C99. 3 * 4 * $(C_HEADER_DESCRIPTION pubs.opengroup.org/onlinepubs/009695399/basedefs/_inttypes.h.html, _inttypes.h) 5 * 6 * Copyright: Copyright Sean Kelly 2005 - 2009. 7 * License: Distributed under the 8 * $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0). 9 * (See accompanying file LICENSE) 10 * Authors: Sean Kelly 11 * Source: $(DRUNTIMESRC core/stdc/_inttypes.d) 12 * Standards: ISO/IEC 9899:1999 (E) 13 */ 14 15 module core.stdc.inttypes; 16 17 public import core.stdc.stddef; // for wchar_t 18 public import core.stdc.stdint; // required by spec 19 20 extern (C): 21 @trusted: // Types and constants only. 22 nothrow: 23 @nogc: 24 25 /// 26 struct imaxdiv_t 27 { 28 intmax_t quot, 29 rem; 30 } 31 32 private alias immutable(char)* _cstr; 33 34 /// 35 enum _cstr PRId8 = "hhd"; 36 /// 37 enum _cstr PRId16 = "hd"; 38 /// 39 enum _cstr PRId32 = "ld"; 40 /// 41 enum _cstr PRId64 = "lld"; 42 43 /// 44 enum _cstr PRIdLEAST8 = "hhd"; 45 /// 46 enum _cstr PRIdLEAST16 = "hd"; 47 /// 48 enum _cstr PRIdLEAST32 = "ld"; 49 /// 50 enum _cstr PRIdLEAST64 = "lld"; 51 52 /// 53 enum _cstr PRIdFAST8 = "hhd"; 54 /// 55 enum _cstr PRIdFAST16 = "d"; 56 /// 57 enum _cstr PRIdFAST32 = "ld"; 58 /// 59 enum _cstr PRIdFAST64 = "lld"; 60 61 /// 62 enum _cstr PRIi8 = "hhi"; 63 /// 64 enum _cstr PRIi16 = "hi"; 65 /// 66 enum _cstr PRIi32 = "li"; 67 /// 68 enum _cstr PRIi64 = "lli"; 69 70 /// 71 enum _cstr PRIiLEAST8 = "hhi"; 72 /// 73 enum _cstr PRIiLEAST16 = "hi"; 74 /// 75 enum _cstr PRIiLEAST32 = "li"; 76 /// 77 enum _cstr PRIiLEAST64 = "lli"; 78 79 /// 80 enum _cstr PRIiFAST8 = "hhi"; 81 /// 82 enum _cstr PRIiFAST16 = "i"; 83 /// 84 enum _cstr PRIiFAST32 = "li"; 85 /// 86 enum _cstr PRIiFAST64 = "lli"; 87 88 /// 89 enum _cstr PRIo8 = "hho"; 90 /// 91 enum _cstr PRIo16 = "ho"; 92 /// 93 enum _cstr PRIo32 = "lo"; 94 /// 95 enum _cstr PRIo64 = "llo"; 96 97 /// 98 enum _cstr PRIoLEAST8 = "hho"; 99 /// 100 enum _cstr PRIoLEAST16 = "ho"; 101 /// 102 enum _cstr PRIoLEAST32 = "lo"; 103 /// 104 enum _cstr PRIoLEAST64 = "llo"; 105 106 /// 107 enum _cstr PRIoFAST8 = "hho"; 108 /// 109 enum _cstr PRIoFAST16 = "o"; 110 /// 111 enum _cstr PRIoFAST32 = "lo"; 112 /// 113 enum _cstr PRIoFAST64 = "llo"; 114 115 /// 116 enum _cstr PRIu8 = "hhu"; 117 /// 118 enum _cstr PRIu16 = "hu"; 119 /// 120 enum _cstr PRIu32 = "lu"; 121 /// 122 enum _cstr PRIu64 = "llu"; 123 124 /// 125 enum _cstr PRIuLEAST8 = "hhu"; 126 /// 127 enum _cstr PRIuLEAST16 = "hu"; 128 /// 129 enum _cstr PRIuLEAST32 = "lu"; 130 /// 131 enum _cstr PRIuLEAST64 = "llu"; 132 133 /// 134 enum _cstr PRIuFAST8 = "hhu"; 135 /// 136 enum _cstr PRIuFAST16 = "u"; 137 /// 138 enum _cstr PRIuFAST32 = "lu"; 139 /// 140 enum _cstr PRIuFAST64 = "llu"; 141 142 /// 143 enum _cstr PRIx8 = "hhx"; 144 /// 145 enum _cstr PRIx16 = "hx"; 146 /// 147 enum _cstr PRIx32 = "lx"; 148 /// 149 enum _cstr PRIx64 = "llx"; 150 151 /// 152 enum _cstr PRIxLEAST8 = "hhx"; 153 /// 154 enum _cstr PRIxLEAST16 = "hx"; 155 /// 156 enum _cstr PRIxLEAST32 = "lx"; 157 /// 158 enum _cstr PRIxLEAST64 = "llx"; 159 160 /// 161 enum _cstr PRIxFAST8 = "hhx"; 162 /// 163 enum _cstr PRIxFAST16 = "x"; 164 /// 165 enum _cstr PRIxFAST32 = "lx"; 166 /// 167 enum _cstr PRIxFAST64 = "llx"; 168 169 /// 170 enum _cstr PRIX8 = "hhX"; 171 /// 172 enum _cstr PRIX16 = "hX"; 173 /// 174 enum _cstr PRIX32 = "lX"; 175 /// 176 enum _cstr PRIX64 = "llX"; 177 178 /// 179 enum _cstr PRIXLEAST8 = "hhX"; 180 /// 181 enum _cstr PRIXLEAST16 = "hX"; 182 /// 183 enum _cstr PRIXLEAST32 = "lX"; 184 /// 185 enum _cstr PRIXLEAST64 = "llX"; 186 187 /// 188 enum _cstr PRIXFAST8 = "hhX"; 189 /// 190 enum _cstr PRIXFAST16 = "X"; 191 /// 192 enum _cstr PRIXFAST32 = "lX"; 193 /// 194 enum _cstr PRIXFAST64 = "llX"; 195 196 /// 197 enum _cstr SCNd8 = "hhd"; 198 /// 199 enum _cstr SCNd16 = "hd"; 200 /// 201 enum _cstr SCNd32 = "ld"; 202 /// 203 enum _cstr SCNd64 = "lld"; 204 205 /// 206 enum _cstr SCNdLEAST8 = "hhd"; 207 /// 208 enum _cstr SCNdLEAST16 = "hd"; 209 /// 210 enum _cstr SCNdLEAST32 = "ld"; 211 /// 212 enum _cstr SCNdLEAST64 = "lld"; 213 214 /// 215 enum _cstr SCNdFAST8 = "hhd"; 216 /// 217 enum _cstr SCNdFAST16 = "d"; 218 /// 219 enum _cstr SCNdFAST32 = "ld"; 220 /// 221 enum _cstr SCNdFAST64 = "lld"; 222 223 /// 224 enum _cstr SCNi8 = "hhd"; 225 /// 226 enum _cstr SCNi16 = "hi"; 227 /// 228 enum _cstr SCNi32 = "li"; 229 /// 230 enum _cstr SCNi64 = "lli"; 231 232 /// 233 enum _cstr SCNiLEAST8 = "hhd"; 234 /// 235 enum _cstr SCNiLEAST16 = "hi"; 236 /// 237 enum _cstr SCNiLEAST32 = "li"; 238 /// 239 enum _cstr SCNiLEAST64 = "lli"; 240 241 /// 242 enum _cstr SCNiFAST8 = "hhd"; 243 /// 244 enum _cstr SCNiFAST16 = "i"; 245 /// 246 enum _cstr SCNiFAST32 = "li"; 247 /// 248 enum _cstr SCNiFAST64 = "lli"; 249 250 /// 251 enum _cstr SCNo8 = "hhd"; 252 /// 253 enum _cstr SCNo16 = "ho"; 254 /// 255 enum _cstr SCNo32 = "lo"; 256 /// 257 enum _cstr SCNo64 = "llo"; 258 259 /// 260 enum _cstr SCNoLEAST8 = "hhd"; 261 /// 262 enum _cstr SCNoLEAST16 = "ho"; 263 /// 264 enum _cstr SCNoLEAST32 = "lo"; 265 /// 266 enum _cstr SCNoLEAST64 = "llo"; 267 268 /// 269 enum _cstr SCNoFAST8 = "hhd"; 270 /// 271 enum _cstr SCNoFAST16 = "o"; 272 /// 273 enum _cstr SCNoFAST32 = "lo"; 274 /// 275 enum _cstr SCNoFAST64 = "llo"; 276 277 /// 278 enum _cstr SCNu8 = "hhd"; 279 /// 280 enum _cstr SCNu16 = "hu"; 281 /// 282 enum _cstr SCNu32 = "lu"; 283 /// 284 enum _cstr SCNu64 = "llu"; 285 286 /// 287 enum _cstr SCNuLEAST8 = "hhd"; 288 /// 289 enum _cstr SCNuLEAST16 = "hu"; 290 /// 291 enum _cstr SCNuLEAST32 = "lu"; 292 /// 293 enum _cstr SCNuLEAST64 = "llu"; 294 295 /// 296 enum _cstr SCNuFAST8 = "hhd"; 297 /// 298 enum _cstr SCNuFAST16 = "u"; 299 /// 300 enum _cstr SCNuFAST32 = "lu"; 301 /// 302 enum _cstr SCNuFAST64 = "llu"; 303 304 /// 305 enum _cstr SCNx8 = "hhd"; 306 /// 307 enum _cstr SCNx16 = "hx"; 308 /// 309 enum _cstr SCNx32 = "lx"; 310 /// 311 enum _cstr SCNx64 = "llx"; 312 313 /// 314 enum _cstr SCNxLEAST8 = "hhd"; 315 /// 316 enum _cstr SCNxLEAST16 = "hx"; 317 /// 318 enum _cstr SCNxLEAST32 = "lx"; 319 /// 320 enum _cstr SCNxLEAST64 = "llx"; 321 322 /// 323 enum _cstr SCNxFAST8 = "hhd"; 324 /// 325 enum _cstr SCNxFAST16 = "x"; 326 /// 327 enum _cstr SCNxFAST32 = "lx"; 328 /// 329 enum _cstr SCNxFAST64 = "llx"; 330 331 version (D_LP64) 332 { 333 /// 334 enum _cstr PRIdMAX = PRId64; 335 /// 336 enum _cstr PRIiMAX = PRIi64; 337 /// 338 enum _cstr PRIoMAX = PRIo64; 339 /// 340 enum _cstr PRIuMAX = PRIu64; 341 /// 342 enum _cstr PRIxMAX = PRIx64; 343 /// 344 enum _cstr PRIXMAX = PRIX64; 345 346 /// 347 enum _cstr SCNdMAX = SCNd64; 348 /// 349 enum _cstr SCNiMAX = SCNi64; 350 /// 351 enum _cstr SCNoMAX = SCNo64; 352 /// 353 enum _cstr SCNuMAX = SCNu64; 354 /// 355 enum _cstr SCNxMAX = SCNx64; 356 357 /// 358 enum _cstr PRIdPTR = PRId64; 359 /// 360 enum _cstr PRIiPTR = PRIi64; 361 /// 362 enum _cstr PRIoPTR = PRIo64; 363 /// 364 enum _cstr PRIuPTR = PRIu64; 365 /// 366 enum _cstr PRIxPTR = PRIx64; 367 /// 368 enum _cstr PRIXPTR = PRIX64; 369 370 /// 371 enum _cstr SCNdPTR = SCNd64; 372 /// 373 enum _cstr SCNiPTR = SCNi64; 374 /// 375 enum _cstr SCNoPTR = SCNo64; 376 /// 377 enum _cstr SCNuPTR = SCNu64; 378 /// 379 enum _cstr SCNxPTR = SCNx64; 380 } 381 else 382 { 383 /// 384 enum _cstr PRIdMAX = PRId32; 385 /// 386 enum _cstr PRIiMAX = PRIi32; 387 /// 388 enum _cstr PRIoMAX = PRIo32; 389 /// 390 enum _cstr PRIuMAX = PRIu32; 391 /// 392 enum _cstr PRIxMAX = PRIx32; 393 /// 394 enum _cstr PRIXMAX = PRIX32; 395 396 /// 397 enum _cstr SCNdMAX = SCNd32; 398 /// 399 enum _cstr SCNiMAX = SCNi32; 400 /// 401 enum _cstr SCNoMAX = SCNo32; 402 /// 403 enum _cstr SCNuMAX = SCNu32; 404 /// 405 enum _cstr SCNxMAX = SCNx32; 406 407 /// 408 enum _cstr PRIdPTR = PRId32; 409 /// 410 enum _cstr PRIiPTR = PRIi32; 411 /// 412 enum _cstr PRIoPTR = PRIo32; 413 /// 414 enum _cstr PRIuPTR = PRIu32; 415 /// 416 enum _cstr PRIxPTR = PRIx32; 417 /// 418 enum _cstr PRIXPTR = PRIX32; 419 420 /// 421 enum _cstr SCNdPTR = SCNd32; 422 /// 423 enum _cstr SCNiPTR = SCNi32; 424 /// 425 enum _cstr SCNoPTR = SCNo32; 426 /// 427 enum _cstr SCNuPTR = SCNu32; 428 /// 429 enum _cstr SCNxPTR = SCNx32; 430 } 431 432 /// 433 intmax_t imaxabs(intmax_t j); 434 /// 435 imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom); 436 /// 437 intmax_t strtoimax(const scope char* nptr, char** endptr, int base); 438 /// 439 uintmax_t strtoumax(const scope char* nptr, char** endptr, int base); 440 /// 441 intmax_t wcstoimax(const scope wchar_t* nptr, wchar_t** endptr, int base); 442 /// 443 uintmax_t wcstoumax(const scope wchar_t* nptr, wchar_t** endptr, int base);