132
|
1 /**
|
|
2 * D header file for C99.
|
|
3 *
|
|
4 * Copyright: Public Domain
|
|
5 * License: Public Domain
|
|
6 * Authors: Sean Kelly
|
|
7 * Standards: ISO/IEC 9899:1999 (E)
|
|
8 */
|
|
9 module tango.stdc.stdint;
|
|
10
|
|
11 private
|
|
12 {
|
|
13 template typify(T)
|
|
14 {
|
|
15 T typify( T val ) { return val; }
|
|
16 }
|
|
17 }
|
|
18
|
|
19 extern (C):
|
|
20
|
|
21 alias byte int8_t;
|
|
22 alias short int16_t;
|
|
23 alias int int32_t;
|
|
24 alias long int64_t;
|
|
25 //alias cent int128_t;
|
|
26
|
|
27 alias ubyte uint8_t;
|
|
28 alias ushort uint16_t;
|
|
29 alias uint uint32_t;
|
|
30 alias ulong uint64_t;
|
|
31 //alias ucent uint128_t;
|
|
32
|
|
33 alias byte int_least8_t;
|
|
34 alias short int_least16_t;
|
|
35 alias int int_least32_t;
|
|
36 alias long int_least64_t;
|
|
37
|
|
38 alias ubyte uint_least8_t;
|
|
39 alias ushort uint_least16_t;
|
|
40 alias uint uint_least32_t;
|
|
41 alias ulong uint_least64_t;
|
|
42
|
|
43 alias byte int_fast8_t;
|
|
44 alias int int_fast16_t;
|
|
45 alias int int_fast32_t;
|
|
46 alias long int_fast64_t;
|
|
47
|
|
48 alias ubyte uint_fast8_t;
|
|
49 alias uint uint_fast16_t;
|
|
50 alias uint uint_fast32_t;
|
|
51 alias ulong uint_fast64_t;
|
|
52
|
|
53 version( X86_64 )
|
|
54 {
|
|
55 alias long intptr_t;
|
|
56 alias ulong uintptr_t;
|
|
57 }
|
|
58 else
|
|
59 {
|
|
60 alias int intptr_t;
|
|
61 alias uint uintptr_t;
|
|
62 }
|
|
63
|
|
64 alias long intmax_t;
|
|
65 alias ulong uintmax_t;
|
|
66
|
|
67 version( VerboseC )
|
|
68 {
|
|
69 private import tango.stdc.stddef;
|
|
70 private import tango.stdc.signal; // for sig_atomic_t
|
|
71
|
|
72 const int8_t INT8_MIN = int8_t.min;
|
|
73 const int8_t INT8_MAX = int8_t.max;
|
|
74 const int16_t INT16_MIN = int16_t.min;
|
|
75 const int16_t INT16_MAX = int16_t.max;
|
|
76 const int32_t INT32_MIN = int32_t.min;
|
|
77 const int32_t INT32_MAX = int32_t.max;
|
|
78 const int64_t INT64_MIN = int64_t.min;
|
|
79 const int64_t INT64_MAX = int64_t.max;
|
|
80
|
|
81 const uint8_t UINT8_MAX = uint8_t.max;
|
|
82 const uint16_t UINT16_MAX = uint16_t.max;
|
|
83 const uint32_t UINT32_MAX = uint32_t.max;
|
|
84 const uint64_t UINT64_MAX = uint64_t.max;
|
|
85
|
|
86 const int_least8_t INT_LEAST8_MIN = int_least8_t.min;
|
|
87 const int_least8_t INT_LEAST8_MAX = int_least8_t.max;
|
|
88 const int_least16_t INT_LEAST16_MIN = int_least16_t.min;
|
|
89 const int_least16_t INT_LEAST16_MAX = int_least16_t.max;
|
|
90 const int_least32_t INT_LEAST32_MIN = int_least32_t.min;
|
|
91 const int_least32_t INT_LEAST32_MAX = int_least32_t.max;
|
|
92 const int_least64_t INT_LEAST64_MIN = int_least64_t.min;
|
|
93 const int_least64_t INT_LEAST64_MAX = int_least64_t.max;
|
|
94
|
|
95 const uint_least8_t UINT_LEAST8_MAX = uint_least8_t.max;
|
|
96 const uint_least16_t UINT_LEAST16_MAX = uint_least16_t.max;
|
|
97 const uint_least32_t UINT_LEAST32_MAX = uint_least32_t.max;
|
|
98 const uint_least64_t UINT_LEAST64_MAX = uint_least64_t.max;
|
|
99
|
|
100 const int_fast8_t INT_FAST8_MIN = int_fast8_t.min;
|
|
101 const int_fast8_t INT_FAST8_MAX = int_fast8_t.max;
|
|
102 const int_fast16_t INT_FAST16_MIN = int_fast16_t.min;
|
|
103 const int_fast16_t INT_FAST16_MAX = int_fast16_t.max;
|
|
104 const int_fast32_t INT_FAST32_MIN = int_fast32_t.min;
|
|
105 const int_fast32_t INT_FAST32_MAX = int_fast32_t.max;
|
|
106 const int_fast64_t INT_FAST64_MIN = int_fast64_t.min;
|
|
107 const int_fast64_t INT_FAST64_MAX = int_fast64_t.max;
|
|
108
|
|
109 const uint_fast8_t UINT_FAST8_MAX = uint_fast8_t.max;
|
|
110 const uint_fast16_t UINT_FAST16_MAX = uint_fast16_t.max;
|
|
111 const uint_fast32_t UINT_FAST32_MAX = uint_fast32_t.max;
|
|
112 const uint_fast64_t UINT_FAST64_MAX = uint_fast64_t.max;
|
|
113
|
|
114 const intptr_t INTPTR_MIN = intptr_t.min;
|
|
115 const intptr_t INTPTR_MAX = intptr_t.max;
|
|
116
|
|
117 const uintptr_t UINTPTR_MIN = uintptr_t.min;
|
|
118 const uintptr_t UINTPTR_MAX = uintptr_t.max;
|
|
119
|
|
120 const intmax_t INTMAX_MIN = intmax_t.min;
|
|
121 const intmax_t INTMAX_MAX = intmax_t.max;
|
|
122
|
|
123 const uintmax_t UINTMAX_MAX = uintmax_t.max;
|
|
124
|
|
125 const ptrdiff_t PTRDIFF_MIN = ptrdiff_t.min;
|
|
126 const ptrdiff_t PTRDIFF_MAX = ptrdiff_t.max;
|
|
127
|
|
128 const sig_atomic_t SIG_ATOMIC_MIN = sig_atomic_t.min;
|
|
129 const sig_atomic_t SIG_ATOMIC_MAX = sig_atomic_t.max;
|
|
130
|
|
131 const size_t SIZE_MAX = size_t.max;
|
|
132
|
|
133 const wchar_t WCHAR_MIN = wchar_t.min;
|
|
134 const wchar_t WCHAR_MAX = wchar_t.max;
|
|
135
|
|
136 const wint_t WINT_MIN = wint_t.min;
|
|
137 const wint_t WINT_MAX = wint_t.max;
|
|
138 }
|
|
139
|
|
140 alias typify!(int8_t) INT8_C;
|
|
141 alias typify!(int16_t) INT16_C;
|
|
142 alias typify!(int32_t) INT32_C;
|
|
143 alias typify!(int64_t) INT64_C;
|
|
144
|
|
145 alias typify!(uint8_t) UINT8_C;
|
|
146 alias typify!(uint16_t) UINT16_C;
|
|
147 alias typify!(uint32_t) UINT32_C;
|
|
148 alias typify!(uint64_t) UINT64_C;
|
|
149
|
|
150 alias typify!(intmax_t) INTMAX_C;
|
|
151 alias typify!(uintmax_t) UINTMAX_C;
|