7 void *allocate(std::size_t size, std::size_t alignment =
sizeof(
void*))
9 void *allocatedMemory =
nullptr;
13 allocatedMemory = _aligned_malloc(size,
sizeof(
void*));
17 std::new_handler handler = std::get_new_handler();
22 throw std::bad_alloc();
24 }
while (!allocatedMemory);
26 return allocatedMemory;
30 void *
operator new(std::size_t count)
32 return allocate(count);
35 void *
operator new[](std::size_t count)
37 return ::operator
new(count);
40 void *
operator new(std::size_t count, std::nothrow_t
const &tag) noexcept
44 return _aligned_malloc(count,
sizeof(
void*));
47 void *
operator new[](std::size_t count, std::nothrow_t
const &tag) noexcept
49 return operator new(count, tag);
54 std::size_t alignment,
62 return allocate(size, alignment);
73 return operator new[](
84 void operator delete(
void *ptr) noexcept
89 void operator delete[](
void *ptr) noexcept
94 void operator delete(
void *ptr, std::size_t count) noexcept
100 void operator delete[](
void *ptr, std::size_t count) noexcept
102 operator delete(ptr, count);
105 void operator delete(
void *ptr, std::nothrow_t
const &tag) noexcept
111 void operator delete[](
void *ptr, std::nothrow_t
const &tag) noexcept
113 ::operator
delete(ptr, tag);