5export module zxfoundation.base.types;
13 using i8 = __INT8_TYPE__;
14 using u8 = __UINT8_TYPE__;
16 using i16 = __INT16_TYPE__;
17 using u16 = __UINT16_TYPE__;
19 using i32 = __INT32_TYPE__;
20 using u32 = __UINT32_TYPE__;
21 using wint = __WINT_TYPE__;
23 using i64 = __INT64_TYPE__;
24 using u64 = __UINT64_TYPE__;
26 using i128 = __int128_t;
27 using u128 = __uint128_t;
28 using complex =
__complex__ double;
30#ifndef ZX_NO_COMP_FLOAT
32 using f32x = _Float32x;
34 using f64x = _Float64x;
35 using f128 = _Float128;
40 using f64x =
long double;
41 using f128 =
long double;
44 using cstr =
decltype(
"");
45 using char8 =
char8_t;
46 using char16 = __CHAR16_TYPE__;
47 using char32 = __CHAR32_TYPE__;
48 using wchar = __WCHAR_TYPE__;
49 using uchar =
unsigned char;
51 using i8least = __INT_LEAST8_TYPE__;
52 using i16least = __INT_LEAST16_TYPE__;
53 using i32least = __INT_LEAST32_TYPE__;
54 using i64least = __INT_LEAST64_TYPE__;
56 using i8fast = __INT_FAST8_TYPE__;
57 using i16fast = __INT_FAST16_TYPE__;
58 using i32fast = __INT_FAST32_TYPE__;
59 using i64fast = __INT_FAST64_TYPE__;
61 using u8least = __UINT_LEAST8_TYPE__;
62 using u16least = __UINT_LEAST16_TYPE__;
63 using u32least = __UINT_LEAST32_TYPE__;
64 using u64least = __UINT_LEAST64_TYPE__;
66 using u8fast = __UINT_FAST8_TYPE__;
67 using u16fast = __UINT_FAST16_TYPE__;
68 using u32fast = __UINT_FAST32_TYPE__;
69 using u64fast = __UINT_FAST64_TYPE__;
71 using imax = __INTMAX_TYPE__;
72 using umax = __UINTMAX_TYPE__;
74 using usize = __SIZE_TYPE__;
75 using isize = __PTRDIFF_TYPE__;
76 using ptrdiff = __PTRDIFF_TYPE__;
78 using uptr = __UINTPTR_TYPE__;
79 using iptr = __INTPTR_TYPE__;
83 using bit_int =
_BitInt(N);
86 using ubit_int =
unsigned _BitInt(N);
123 using i2 = bit_int<2>;
124 using u2 = ubit_int<2>;
126 using i4 = bit_int<4>;
127 using u4 = ubit_int<4>;
129 using i256 = bit_int<256>;
130 using u256 = ubit_int<256>;
132 using i512 = bit_int<512>;
133 using u512 = ubit_int<512>;
135 using i1024 = bit_int<1024>;
136 using u1024 = ubit_int<1024>;
138 using i2048 = bit_int<2048>;
139 using u2048 = ubit_int<2048>;
141 using i4096 = bit_int<4096>;
142 using u4096 = ubit_int<4096>;
146 using condition_code = i32;
148 inline constexpr u32 PAGE_SHIFT = 12U;
149 inline constexpr u64 PAGE_SIZE = 1ULL << PAGE_SHIFT;
150 inline constexpr u64 PAGE_MASK = ~(PAGE_SIZE - 1ULL);
155 template<
typename Derived, usize Size>
156 struct FixedSizeBase {
157 virtual ~FixedSizeBase() {
158 static_assert(
sizeof(Derived) == Size,
"FixedSizeBase: size does not match");
162 using uuid_t = uchar[16];
164 using nullptr_t =
decltype(
nullptr);