@user2138149
operator new
returns memory aligned to __STDCPP_DEFAULT_NEW_ALIGNMENT__
(that's 16
on all platforms I just tested) if you don't specify alignment yourself. I think that even if you specify alignment, it will refuse to align to less than that amount, but it's not guaranteed anywhere as far as I can tell. In this case by "underaligned" I mean "aligned less than __STDCPP_DEFAULT_NEW_ALIGNMENT__
", but I'm using the word loosely, the proper definition is probably "aligned less than alignof(std::max_align_t)
".