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 15module core.stdc.inttypes; 16 17public import core.stdc.stddef; // for wchar_t 18public import core.stdc.stdint; // required by spec 19 20extern (C): 21@trusted: // Types and constants only. 22nothrow: 23@nogc: 24 25/// 26struct imaxdiv_t 27{ 28 intmax_t quot, 29 rem; 30} 31 32private alias immutable(char)* _cstr; 33 34/// 35enum _cstr PRId8 = "hhd"; 36/// 37enum _cstr PRId16 = "hd"; 38/// 39enum _cstr PRId32 = "ld"; 40/// 41enum _cstr PRId64 = "lld"; 42 43/// 44enum _cstr PRIdLEAST8 = "hhd"; 45/// 46enum _cstr PRIdLEAST16 = "hd"; 47/// 48enum _cstr PRIdLEAST32 = "ld"; 49/// 50enum _cstr PRIdLEAST64 = "lld"; 51 52/// 53enum _cstr PRIdFAST8 = "hhd"; 54/// 55enum _cstr PRIdFAST16 = "d"; 56/// 57enum _cstr PRIdFAST32 = "ld"; 58/// 59enum _cstr PRIdFAST64 = "lld"; 60 61/// 62enum _cstr PRIi8 = "hhi"; 63/// 64enum _cstr PRIi16 = "hi"; 65/// 66enum _cstr PRIi32 = "li"; 67/// 68enum _cstr PRIi64 = "lli"; 69 70/// 71enum _cstr PRIiLEAST8 = "hhi"; 72/// 73enum _cstr PRIiLEAST16 = "hi"; 74/// 75enum _cstr PRIiLEAST32 = "li"; 76/// 77enum _cstr PRIiLEAST64 = "lli"; 78 79/// 80enum _cstr PRIiFAST8 = "hhi"; 81/// 82enum _cstr PRIiFAST16 = "i"; 83/// 84enum _cstr PRIiFAST32 = "li"; 85/// 86enum _cstr PRIiFAST64 = "lli"; 87 88/// 89enum _cstr PRIo8 = "hho"; 90/// 91enum _cstr PRIo16 = "ho"; 92/// 93enum _cstr PRIo32 = "lo"; 94/// 95enum _cstr PRIo64 = "llo"; 96 97/// 98enum _cstr PRIoLEAST8 = "hho"; 99/// 100enum _cstr PRIoLEAST16 = "ho"; 101/// 102enum _cstr PRIoLEAST32 = "lo"; 103/// 104enum _cstr PRIoLEAST64 = "llo"; 105 106/// 107enum _cstr PRIoFAST8 = "hho"; 108/// 109enum _cstr PRIoFAST16 = "o"; 110/// 111enum _cstr PRIoFAST32 = "lo"; 112/// 113enum _cstr PRIoFAST64 = "llo"; 114 115/// 116enum _cstr PRIu8 = "hhu"; 117/// 118enum _cstr PRIu16 = "hu"; 119/// 120enum _cstr PRIu32 = "lu"; 121/// 122enum _cstr PRIu64 = "llu"; 123 124/// 125enum _cstr PRIuLEAST8 = "hhu"; 126/// 127enum _cstr PRIuLEAST16 = "hu"; 128/// 129enum _cstr PRIuLEAST32 = "lu"; 130/// 131enum _cstr PRIuLEAST64 = "llu"; 132 133/// 134enum _cstr PRIuFAST8 = "hhu"; 135/// 136enum _cstr PRIuFAST16 = "u"; 137/// 138enum _cstr PRIuFAST32 = "lu"; 139/// 140enum _cstr PRIuFAST64 = "llu"; 141 142/// 143enum _cstr PRIx8 = "hhx"; 144/// 145enum _cstr PRIx16 = "hx"; 146/// 147enum _cstr PRIx32 = "lx"; 148/// 149enum _cstr PRIx64 = "llx"; 150 151/// 152enum _cstr PRIxLEAST8 = "hhx"; 153/// 154enum _cstr PRIxLEAST16 = "hx"; 155/// 156enum _cstr PRIxLEAST32 = "lx"; 157/// 158enum _cstr PRIxLEAST64 = "llx"; 159 160/// 161enum _cstr PRIxFAST8 = "hhx"; 162/// 163enum _cstr PRIxFAST16 = "x"; 164/// 165enum _cstr PRIxFAST32 = "lx"; 166/// 167enum _cstr PRIxFAST64 = "llx"; 168 169/// 170enum _cstr PRIX8 = "hhX"; 171/// 172enum _cstr PRIX16 = "hX"; 173/// 174enum _cstr PRIX32 = "lX"; 175/// 176enum _cstr PRIX64 = "llX"; 177 178/// 179enum _cstr PRIXLEAST8 = "hhX"; 180/// 181enum _cstr PRIXLEAST16 = "hX"; 182/// 183enum _cstr PRIXLEAST32 = "lX"; 184/// 185enum _cstr PRIXLEAST64 = "llX"; 186 187/// 188enum _cstr PRIXFAST8 = "hhX"; 189/// 190enum _cstr PRIXFAST16 = "X"; 191/// 192enum _cstr PRIXFAST32 = "lX"; 193/// 194enum _cstr PRIXFAST64 = "llX"; 195 196/// 197enum _cstr SCNd8 = "hhd"; 198/// 199enum _cstr SCNd16 = "hd"; 200/// 201enum _cstr SCNd32 = "ld"; 202/// 203enum _cstr SCNd64 = "lld"; 204 205/// 206enum _cstr SCNdLEAST8 = "hhd"; 207/// 208enum _cstr SCNdLEAST16 = "hd"; 209/// 210enum _cstr SCNdLEAST32 = "ld"; 211/// 212enum _cstr SCNdLEAST64 = "lld"; 213 214/// 215enum _cstr SCNdFAST8 = "hhd"; 216/// 217enum _cstr SCNdFAST16 = "d"; 218/// 219enum _cstr SCNdFAST32 = "ld"; 220/// 221enum _cstr SCNdFAST64 = "lld"; 222 223/// 224enum _cstr SCNi8 = "hhd"; 225/// 226enum _cstr SCNi16 = "hi"; 227/// 228enum _cstr SCNi32 = "li"; 229/// 230enum _cstr SCNi64 = "lli"; 231 232/// 233enum _cstr SCNiLEAST8 = "hhd"; 234/// 235enum _cstr SCNiLEAST16 = "hi"; 236/// 237enum _cstr SCNiLEAST32 = "li"; 238/// 239enum _cstr SCNiLEAST64 = "lli"; 240 241/// 242enum _cstr SCNiFAST8 = "hhd"; 243/// 244enum _cstr SCNiFAST16 = "i"; 245/// 246enum _cstr SCNiFAST32 = "li"; 247/// 248enum _cstr SCNiFAST64 = "lli"; 249 250/// 251enum _cstr SCNo8 = "hhd"; 252/// 253enum _cstr SCNo16 = "ho"; 254/// 255enum _cstr SCNo32 = "lo"; 256/// 257enum _cstr SCNo64 = "llo"; 258 259/// 260enum _cstr SCNoLEAST8 = "hhd"; 261/// 262enum _cstr SCNoLEAST16 = "ho"; 263/// 264enum _cstr SCNoLEAST32 = "lo"; 265/// 266enum _cstr SCNoLEAST64 = "llo"; 267 268/// 269enum _cstr SCNoFAST8 = "hhd"; 270/// 271enum _cstr SCNoFAST16 = "o"; 272/// 273enum _cstr SCNoFAST32 = "lo"; 274/// 275enum _cstr SCNoFAST64 = "llo"; 276 277/// 278enum _cstr SCNu8 = "hhd"; 279/// 280enum _cstr SCNu16 = "hu"; 281/// 282enum _cstr SCNu32 = "lu"; 283/// 284enum _cstr SCNu64 = "llu"; 285 286/// 287enum _cstr SCNuLEAST8 = "hhd"; 288/// 289enum _cstr SCNuLEAST16 = "hu"; 290/// 291enum _cstr SCNuLEAST32 = "lu"; 292/// 293enum _cstr SCNuLEAST64 = "llu"; 294 295/// 296enum _cstr SCNuFAST8 = "hhd"; 297/// 298enum _cstr SCNuFAST16 = "u"; 299/// 300enum _cstr SCNuFAST32 = "lu"; 301/// 302enum _cstr SCNuFAST64 = "llu"; 303 304/// 305enum _cstr SCNx8 = "hhd"; 306/// 307enum _cstr SCNx16 = "hx"; 308/// 309enum _cstr SCNx32 = "lx"; 310/// 311enum _cstr SCNx64 = "llx"; 312 313/// 314enum _cstr SCNxLEAST8 = "hhd"; 315/// 316enum _cstr SCNxLEAST16 = "hx"; 317/// 318enum _cstr SCNxLEAST32 = "lx"; 319/// 320enum _cstr SCNxLEAST64 = "llx"; 321 322/// 323enum _cstr SCNxFAST8 = "hhd"; 324/// 325enum _cstr SCNxFAST16 = "x"; 326/// 327enum _cstr SCNxFAST32 = "lx"; 328/// 329enum _cstr SCNxFAST64 = "llx"; 330 331version (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} 381else 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/// 433intmax_t imaxabs(intmax_t j); 434/// 435imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom); 436/// 437intmax_t strtoimax(const scope char* nptr, char** endptr, int base); 438/// 439uintmax_t strtoumax(const scope char* nptr, char** endptr, int base); 440/// 441intmax_t wcstoimax(const scope wchar_t* nptr, wchar_t** endptr, int base); 442/// 443uintmax_t wcstoumax(const scope wchar_t* nptr, wchar_t** endptr, int base); 444