20#ifndef CXXUTILS_UINTCONV_H
21#define CXXUTILS_UINTCONV_H
44 static_assert(std::is_trivially_copyable_v<T>);
45 static_assert(
sizeof(
uint_t) ==
sizeof(T));
46 static_assert(
sizeof(T) <=
sizeof(uintptr_t));
51 const uint_t ui = std::bit_cast<uint_t>(
x);
52 return static_cast<uintptr_t
> (ui);
61 return std::bit_cast<T>(narrowed);
Generate an unsigned integer type of a specified size.
static uintptr_t uintToVal(uintptr_t ui)
Convert a uintptr_t to a T.
static uintptr_t valToUInt(uintptr_t x)
Convert a T to a uintptr_t.
Helpers for converting between uintptr_t and a pointer or integer.
static uintptr_t valToUInt(T x)
Convert a T to a uintptr_t.
typename SizedUInt< sizeof(T)>::type uint_t
static T uintToVal(uintptr_t ui)
Convert a uintptr_t to a T.