|
| struct | honey::Allocator< Subclass, T >::rebind< U > |
| |
| class | honey::Allocator< Subclass, T > |
| | std::allocator compatible allocator More...
|
| |
| class | honey::AllocatorObject< Alloc > |
| | Objects that inherit from this class will use Alloc for new/delete ops. More...
|
| |
| struct | honey::DefaultAllocator< T, class > |
| | Returns T::Allocator<T> if available, otherwise std::allocator<T> More...
|
| |
| struct | honey::DefaultAllocator< T[], std::true_type > |
| |
| struct | honey::DefaultAllocator< T, typename mt::True< typename T::template Allocator< T > >::type > |
| |
| struct | honey::finalize< T, Alloc > |
| | Functor to delete a pointer. More...
|
| |
| struct | honey::finalize< T[], std::allocator< T > > |
| | Specialization for array. More...
|
| |
| struct | honey::finalize< void, std::allocator< void > > |
| | Specialization for void. More...
|
| |
| struct | honey::MemPool::Bucket::Handle |
| | Enables blocks to be referenced via index rather than pointer so that they can include a tag while still maintaining a swappable size. More...
|
| |
| struct | honey::MemPool::Bucket::TaggedHandle |
| | Holds block handle and tag to prevent lock-free ABA issues. More...
|
| |
| struct | honey::MemPool::Bucket::BlockHeader::Debug |
| |
| struct | honey::MemPool::Bucket::BlockHeader |
| | Bucket block header. More...
|
| |
| struct | honey::MemPool::Heap::BlockHeader::Debug |
| |
| struct | honey::MemPool::Heap::BlockHeader |
| | Heap block header. More...
|
| |
| class | honey::MemPool |
| | Memory pool. More...
|
| |
| class | honey::MemPoolAllocator< Subclass, T > |
| | MemPool allocator. More...
|
| |
| class | honey::SharedObj< Subclass > |
| | Reference-counted object for intrusive shared pointers. More...
|
| |
| class | honey::UniquePtr< T, Fin > |
| | Pointer to a unique, non-shared, object. Finalizer is run upon destruction (deletes object by default) if pointer is not null. More...
|
| |
| class | honey::WeakPtr< T > |
| | Point to a shared object without holding a reference. The object is accessible through a lock, which prevents unexpected destruction. More...
|
| |
| class | honey::SharedPtr< T > |
| | Combined intrusive/non-intrusive smart pointer. Can reference and share any object automatically. More...
|
| |
| class | honey::SmallAllocator< T > |
| | Global allocator for small memory blocks. To provide a custom pool define SmallAllocator_createSingleton_ and implement SmallAllocator_createSingleton(). More...
|
| |
|
| void * | operator new (size_t size, const char *srcFile, int srcLine) |
| |
| void * | operator new[] (size_t size, const char *srcFile, int srcLine) |
| |
| template<class T > |
| T * | honey::alloc (szt count=1) |
| | Allocate memory for count number of T objects. Objects are not constructed. More...
|
| |
| template<class T > |
| void | honey::free (T *&p) |
| | Deallocate memory and set pointer to null. Object is not destroyed. More...
|
| |
| template<class T > |
| void | honey::free (T *const &p) |
| |
| template<class T > |
| T * | honey::alignFloor (T *p, szt bytes) |
| | Align a pointer to the previous byte boundary bytes. Does nothing if p is already on boundary. Alignment must be a power of two. More...
|
| |
| template<class T > |
| T * | honey::alignCeil (T *p, szt bytes) |
| | Align a pointer to the next byte boundary bytes. Does nothing if p is already on boundary. Alignment must be a power of two. More...
|
| |
| template<class T , class Alloc > |
| T * | honey::allocAligned (szt count, szt align_, Alloc &&a) |
| | Allocate memory with alignment. Alignment must be a power of two. Allocator element type must be int8. More...
|
| |
| template<class T > |
| T * | honey::allocAligned (szt count, szt align) |
| | Allocate memory with alignment using default allocator. More...
|
| |
| template<class T , class Alloc > |
| void | honey::freeAligned (T *p, Alloc &&a) |
| | Deallocate aligned memory. Allocator element type must be int8. More...
|
| |
| template<class T > |
| void | honey::freeAligned (T *p) |
| | Deallocate aligned memory using default allocator. More...
|
| |
| template<class T > |
| void | honey::delete_ (T *&p) |
| | Destruct object, free memory and set pointer to null. More...
|
| |
| template<class T > |
| void | honey::delete_ (T *const &p) |
| |
| template<class T , class Alloc > |
| void | honey::delete_ (T *&p, Alloc &&a) |
| | Destruct object, free memory using allocator and set pointer to null. More...
|
| |
| template<class T , class Alloc > |
| void | honey::delete_ (T *const &p, Alloc &&a) |
| |
| template<class T > |
| void | honey::deleteArray (T *&p) |
| | Destruct all array objects, free memory and set pointer to null. More...
|
| |
| template<class T > |
| void | honey::deleteArray (T *const &p) |
| |
| MemPool * | honey::SmallAllocator_createSingleton () |
| | Default implementation. More...
|
| |
| template<class T , class Alloc , class... Args, typename mt::disable_if< mt::is_base_of< priv::SharedObj_tag, T >::value, int >::type = 0> |
| SharedPtr< T > | alloc_shared (Alloc &&a, Args &&...args) |
| | Create a shared ptr to an object of type T constructed with args. The object and the internal control block are allocated together in a single allocation. More...
|
| |
| template<class T , class... Args, class Alloc = typename DefaultAllocator<T>::type> |
| SharedPtr< T > | make_shared (Args &&...args) |
| | alloc_shared() using T::Allocator if available, otherwise std::allocator More...
|
| |
| template<class T , class U > |
| SharedPtr< T > | static_pointer_cast (const SharedPtr< U > &rhs) |
| |
| template<class T , class U > |
| SharedPtr< T > | dynamic_pointer_cast (const SharedPtr< U > &rhs) |
| |
| template<class T , class U > |
| SharedPtr< T > | const_pointer_cast (const SharedPtr< U > &rhs) |
| |
| template<class T , class Alloc , class... Args, class Fin = finalize<T,typename mt::removeRef<Alloc>::type>> |
| UniquePtr< T, Fin > | alloc_unique (Alloc &&a, Args &&...args) |
| | Create a unique ptr to an object of type T constructed with args. More...
|
| |
| template<class T , class... Args, typename mt::disable_if< std::is_array< T >::value, int >::type = 0, class Alloc = typename DefaultAllocator<T>::type> |
| UniquePtr< T > | make_unique (Args &&...args) |
| | alloc_unique() using T::Allocator if available, otherwise std::allocator More...
|
| |
| template<class T , class... Args, typename std::enable_if< std::is_array< T >::value, int >::type = 0> |
| UniquePtr< T > | make_unique (szt size) |
| | Create a unique ptr to an array of size number of elements. More...
|
| |
| template<class T , class... Args, typename std::enable_if< std::is_array< T >::value, int >::type = 0> |
| UniquePtr< T > | make_unique_auto_size (Args &&...args) |
| | Create a unique ptr to an array with deduced size. More...
|
| |
Memory-management and allocators.