19void *NonInterferingBase::operator
new(std::size_t count, std::align_val_t al)
26 al = max( al,
static_cast<align_val_t
>(
alignof(align_val_t) ) );
27 const auto al_as_size =
static_cast<size_t>(al);
28 auto ptr =
static_cast<char*
>(
34 auto integer =
reinterpret_cast<uintptr_t
>(ptr);
35 const auto partial = integer % al_as_size;
36 auto adjustment = partial ? al_as_size - partial : 0;
37 integer += adjustment;
38 ptr =
reinterpret_cast<char*
>(integer);
41 *(
reinterpret_cast<size_t*
>(ptr) - 1) = adjustment;
46void NonInterferingBase::operator
delete(
void *ptr, std::align_val_t al)
49 auto adjustment = *(
reinterpret_cast<size_t*
>(ptr) - 1);
UTILITY_API void lib_utility_dummy_symbol()
constexpr auto sizeof_align_val