16 #ifndef BLOOMBERG_QUANTUM_HEAP_ALLOCATOR_H 17 #define BLOOMBERG_QUANTUM_HEAP_ALLOCATOR_H 19 #include <quantum/quantum_contiguous_pool_manager.h> 50 typedef std::aligned_storage<
sizeof(
value_type),
65 throw std::bad_alloc();
74 *
this = std::move(other);
82 _buffer = other._buffer;
84 other._buffer =
nullptr;
114 #endif //BLOOMBERG_QUANTUM_HEAP_ALLOCATOR_H value_type * pointer
Definition: quantum_heap_allocator.h:38
uint16_t index_type
Definition: quantum_contiguous_pool_manager.h:50
Provides fast (quasi zero-time) in-place allocation for STL containers. Objects are allocated from a ...
Definition: quantum_contiguous_pool_manager.h:40
Definition: quantum_buffer_impl.h:22
value_type & reference
Definition: quantum_heap_allocator.h:40
std::false_type default_constructor
Definition: quantum_heap_allocator.h:49
size_t size_type
Definition: quantum_heap_allocator.h:42
HeapAllocator(const HeapAllocator< U > &other)
Definition: quantum_heap_allocator.h:93
std::false_type propagate_on_container_copy_assignment
Definition: quantum_heap_allocator.h:46
HeapAllocator(this_type &&other)
Definition: quantum_heap_allocator.h:72
HeapAllocator(index_type size)
Definition: quantum_heap_allocator.h:60
bool operator!=(const this_type &) const
Definition: quantum_heap_allocator.h:101
index_type size() const
Definition: quantum_heap_allocator.h:104
std::aligned_storage< sizeof(value_type), alignof(value_type)> storage_type
Definition: quantum_heap_allocator.h:51
HeapAllocator< U > other
Definition: quantum_heap_allocator.h:57
Definition: quantum_heap_allocator.h:55
std::ptrdiff_t difference_type
Definition: quantum_heap_allocator.h:44
const value_type & const_reference
Definition: quantum_heap_allocator.h:41
T value_type
Definition: quantum_contiguous_pool_manager.h:44
std::true_type propagate_on_container_move_assignment
Definition: quantum_heap_allocator.h:45
T value_type
Definition: quantum_heap_allocator.h:37
void setBuffer(aligned_type *buffer, index_type size)
Definition: quantum_contiguous_pool_manager_impl.h:68
HeapAllocator & operator=(const this_type &)
Definition: quantum_heap_allocator.h:76
HeapAllocator & operator=(const HeapAllocator< U > &)
Definition: quantum_heap_allocator.h:96
bool operator==(const this_type &) const
Definition: quantum_heap_allocator.h:98
~HeapAllocator()
Definition: quantum_heap_allocator.h:86
static HeapAllocator select_on_container_copy_construction(const HeapAllocator &other)
Definition: quantum_heap_allocator.h:89
Provides a heap-based object pool to the underlying ContiguousPoolManager. The default buffer size is...
Definition: quantum_heap_allocator.h:33
uint16_t index_type
Definition: quantum_heap_allocator.h:43
storage_type::type aligned_type
Definition: quantum_heap_allocator.h:52
HeapAllocator & operator=(this_type &&other)
Definition: quantum_heap_allocator.h:78
const value_type * const_pointer
Definition: quantum_heap_allocator.h:39
std::true_type propagate_on_container_swap
Definition: quantum_heap_allocator.h:47
HeapAllocator(const this_type &other)
Definition: quantum_heap_allocator.h:69
HeapAllocator< T > this_type
Definition: quantum_heap_allocator.h:36
std::true_type is_always_equal
Definition: quantum_heap_allocator.h:48