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