Is it a guarantee that a 16 byte object would be 16 byte aligned?
C++11 already had alignas, but it was not really integrated well.
language runtimes can call malloc whatever they want.
If you're using a custom allocator you'd have to enfore it yourself which should be fine since you have full control.