3#ifndef pRC_CORE_CONTAINER_ALLOCATION_H
4#define pRC_CORE_CONTAINER_ALLOCATION_H
28 template<Size S, Size P = cMaxDefaultAlignment>
38 if constexpr(
S % (P * 2) == 0)
68 if(
reinterpret_cast<std::uintptr_t
>(
p) %
alignment != 0)
71 "Allocated memory is not aligned to alignment "
87inline
void *operator new(
std::
size_t size)
89 return operator new(size,
93inline void *
operator new[](std::size_t size)
95 return operator new(size);
98inline void *
operator new(std::size_t size, std::align_val_t alignment)
103inline void *
operator new[](std::size_t size, std::align_val_t alignment)
105 return operator new(size, alignment);
108inline void *
operator new(std::size_t size,
109 [[maybe_unused]] std::nothrow_t
const &)
noexcept
111 return operator new(size);
114inline void *
operator new[](std::size_t size,
115 [[maybe_unused]] std::nothrow_t
const &)
noexcept
117 return operator new[](size);
120inline void *
operator new(std::size_t size, std::align_val_t alignment,
121 [[maybe_unused]] std::nothrow_t
const &)
noexcept
123 return operator new(size, alignment);
126inline void *
operator new[](std::size_t size, std::align_val_t alignment,
127 [[maybe_unused]] std::nothrow_t
const &)
noexcept
129 return operator new[](size, alignment);
132inline void operator delete(
void *ptr)
noexcept
137inline void operator delete[](
void *ptr)
noexcept
139 return operator delete(ptr);
142inline void operator delete(
void *ptr, std::align_val_t)
noexcept
144 return operator delete(ptr);
147inline void operator delete[](
void *ptr, std::align_val_t)
noexcept
149 return operator delete[](ptr);
152inline void operator delete(
void *ptr, std::size_t)
154 return operator delete(ptr);
157inline void operator delete[](
void *ptr, std::size_t)
159 return operator delete[](ptr);
162inline void operator delete(
void *ptr, std::size_t, std::align_val_t)
164 return operator delete(ptr);
167inline void operator delete[](
void *ptr, std::size_t, std::align_val_t)
169 return operator delete[](ptr);
172inline void operator delete(
void *ptr, std::nothrow_t
const &)
noexcept
174 return operator delete(ptr);
177inline void operator delete[](
void *ptr, std::nothrow_t
const &)
noexcept
179 return operator delete[](ptr);
182inline void operator delete(
void *ptr, std::nothrow_t
const &, std::align_val_t)
184 return operator delete(ptr);
187inline void operator delete[](
void *ptr, std::nothrow_t
const &,
190 return operator delete[](ptr);
TN::Subscripts S
Definition externs_nonTT.hpp:9
const char * p
Definition gmock-matchers-containers_test.cc:379
static void error(Xs &&...args)
Definition log.hpp:14
Definition cholesky.hpp:10
std::size_t Size
Definition basics.hpp:31
static constexpr auto isProperAlignment(Size const alignment)
Definition allocation.hpp:23
static constexpr auto isPowerOfTwo(T const v)
Definition is_power_of_two.hpp:11
constexpr Size cHugepageSizeByte
Definition config.hpp:51
static consteval auto alignment()
Definition allocation.hpp:30
static auto alloc(Size size, Size const alignment=cMaxDefaultAlignment)
Definition allocation.hpp:49
constexpr auto cDebugLevel
Definition config.hpp:48
static auto dealloc(void *ptr)
Definition allocation.hpp:79
Allocation
Definition allocation.hpp:18
constexpr Size cMaxDefaultAlignment
Definition config.hpp:54
#define BEGIN_IGNORE_DIAGNOSTIC_CLANG(warning)
Definition pragma.hpp:45
#define END_IGNORE_DIAGNOSTIC_CLANG
Definition pragma.hpp:46