10#define DI_INTEGER_LITERAL(Type) \
11 consteval auto operator""_##Type(unsigned long long value)->Type { \
12 if (!math::representable_as<Type>(value)) { \
13 util::compile_time_fail<>(); \
33#ifdef DI_HAVE_128_BIT_INTEGERS
38#undef DI_INTEGER_LITERAL
40 consteval auto operator""_b(
unsigned long long value) ->
Byte {
47 consteval auto operator""_b(
char value) ->
Byte {
57#if !defined(DI_NO_GLOBALS) && !defined(DI_NO_GLOBAL_INTEGRAL_LITERALS)
#define DI_INTEGER_LITERAL(Type)
Definition integral.h:10
Definition duration_literals.h:20
constexpr auto representable_as
Definition representable_as.h:19
ssize_t isize
Definition integers.h:34
__INT16_TYPE__ i16
Definition integers.h:15
std::byte Byte
Definition byte.h:63
size_t usize
Definition integers.h:33
uintptr_t uptr
Definition integers.h:36
__UINT64_TYPE__ u64
Definition integers.h:12
__INT8_TYPE__ i8
Definition integers.h:14
uintmax_t umax
Definition integers.h:39
intmax_t imax
Definition integers.h:40
__UINT8_TYPE__ u8
Definition integers.h:9
__INT32_TYPE__ i32
Definition integers.h:16
__UINT32_TYPE__ u32
Definition integers.h:11
ptrdiff_t iptr
Definition integers.h:37
__INT64_TYPE__ i64
Definition integers.h:17
__UINT16_TYPE__ u16
Definition integers.h:10
void compile_time_fail()
Definition compile_time_fail.h:7
Definition zstring_parser.h:9