16 using base_type = std::conditional_t<ice::build::is_x64, ice::i64, ice::i32>;
18 constexpr auto to_usize() const noexcept;
30 constexpr operator isize() const noexcept;
67 constexpr auto operator""_B(
unsigned long long v)
noexcept ->
ice::usize
72 constexpr auto operator""_KiB(
unsigned long long v)
noexcept ->
ice::usize
77 constexpr auto operator""_MiB(
unsigned long long v)
noexcept ->
ice::usize
89 constexpr usize::operator
isize() const noexcept
97 return { baseval.value - subval.value };
#define ICE_ASSERT_CORE(expression)
Definition assert_core.hxx:43
static constexpr bool is_x64
Definition build.hxx:34
SPDX-License-Identifier: MIT.
Definition array.hxx:12
constexpr auto operator<=>(ice::TimeType auto left, TimeType auto right) noexcept
Definition clock_types.hxx:135
constexpr auto operator-(ice::TimeType auto left, TimeType auto right) noexcept
Definition clock_types.hxx:151
constexpr auto operator==(ice::TimeType auto left, TimeType auto right) noexcept
Definition clock_types.hxx:159
constexpr auto operator-=(T &left, T right) noexcept -> T &
Definition strong_type_integral.hxx:127
constexpr auto operator%(ice::usize left, ice::ualign right) noexcept -> ice::usize
Definition mem_size_types.hxx:138
std::uint32_t u32
Definition types.hxx:26
ualign
Definition mem_size_types.hxx:39
@ b_4
Definition mem_size_types.hxx:44
@ b_8
Definition mem_size_types.hxx:45
@ b_128
Definition mem_size_types.hxx:49
@ b_default
Definition mem_size_types.hxx:55
@ b_512
Definition mem_size_types.hxx:51
@ b_2
Definition mem_size_types.hxx:43
@ b_16
Definition mem_size_types.hxx:46
@ b_32
Definition mem_size_types.hxx:47
@ b_64
Definition mem_size_types.hxx:48
@ b_1
Definition mem_size_types.hxx:42
@ b_1024
Definition mem_size_types.hxx:52
@ b_2048
Definition mem_size_types.hxx:53
@ b_256
Definition mem_size_types.hxx:50
@ invalid
Definition mem_size_types.hxx:40
constexpr auto operator+(ice::TimeType auto left, TimeType auto right) noexcept
Definition clock_types.hxx:143
Type tag to enable utility functions for strongly typed numeric values.
Definition strong_type_integral.hxx:11
Represents a signed size value on the given platform.
Definition mem_size_types.hxx:14
ice::StrongNumeric TypeTag
Definition mem_size_types.hxx:15
constexpr auto to_usize() const noexcept
Definition mem_size_types.hxx:84
base_type value
Definition mem_size_types.hxx:20
std::conditional_t< ice::build::is_x64, ice::i64, ice::i32 > base_type
Definition mem_size_types.hxx:16
Definition mem_size_types.hxx:59
ice::ualign alignment
Definition mem_size_types.hxx:61
ice::usize size
Definition mem_size_types.hxx:60
Represents a unsigned size value on the given platform.
Definition mem_size_types.hxx:26
base_type value
Definition mem_size_types.hxx:35
ice::StrongNumeric TypeTag
Definition mem_size_types.hxx:27
std::size_t base_type
Definition mem_size_types.hxx:28
static constexpr auto subtract(ice::usize left, ice::usize right) noexcept -> ice::usize
Perform a checked subtraction, ensuring 'left' is greater or equal to 'right'.
Definition mem_size_types.hxx:94