6#ifndef XENIUM_ALIGNED_OBJECT_HPP
7#define XENIUM_ALIGNED_OBJECT_HPP
24 template <
typename Derived, std::
size_t Alignment = 0>
26 static void*
operator new(
size_t sz) {
27 return ::operator
new(sz, alignment());
30 static void operator delete(
void* p) {
31 ::operator
delete(p, alignment());
34 static constexpr std::align_val_t alignment() {
35 return static_cast<std::align_val_t
>(Alignment == 0 ? std::alignment_of<Derived>() : Alignment);
A small helper class for correctly aligned dynamic allocations of over-aligned types.
Definition: aligned_object.hpp:25