21 constexpr fast_allocator()
noexcept =
default;
24 constexpr fast_allocator(
const fast_allocator<U>&)
noexcept {};
26 [[nodiscard]] T* allocate(std::size_t n)
noexcept(
false) {
30 void* addr = GeneralMemoryAllocator::get().allocMaxSpeed(n *
sizeof(T));
31 if (addr ==
nullptr) [[unlikely]] {
32 throw deluge::exception::BAD_ALLOC;
34 return static_cast<T*
>(addr);
37 void deallocate(T* p, std::size_t n) { GeneralMemoryAllocator::get().dealloc(p); }
40 bool operator==(
const fast_allocator<U>& o) {
45 bool operator!=(
const fast_allocator<U>& o) {