Implementation of std::allocator to be used with container types provided by the C++ standard library.
As the C+++ library's specification does not include details of the container class's implementation, this allocator uses type RTTRAllocator which detects node types automatically.
Definition at line 1197 of file allocation.hpp.
#include <allocation.hpp>
Public Type Index: | |
| using | AllocatorType = TAllocator |
| Exposes template parameter TAllocator. | |
| using | const_reference = const T& |
| Type definition as required by C++ library standards. | |
| using | difference_type = ptrdiff_t |
| Type definition as required by C++ library standards. | |
| using | is_always_equal = std::false_type |
| Type definition as required by C++ library standards. | |
| using | reference = T& |
| Type definition as required by C++ library standards. | |
| using | size_type = size_t |
| Type definition as required by C++ library standards. | |
| using | value_type = T |
| Type definition as required by C++ library standards. | |
Public Field Index: | |
| RTTRAllocator< TAllocator > & | recycler |
| The only member of this allocator type used to perform all duties. | |
Public Method Index: | |
| constexpr | StdRecyclingAllocator (const StdRecyclingAllocator &) noexcept=default |
| Defaulted copy constructor. | |
| constexpr | StdRecyclingAllocator (RTTRAllocator< TAllocator > &pRecycler) |
| constexpr | StdRecyclingAllocator (StdRecyclingAllocator &&) noexcept=default |
| Defaulted move constructor. | |
| template<typename TSibling> | |
| StdRecyclingAllocator (TSibling &StdRecyclingAllocator) | |
| T * | allocate (size_t n) |
| void | deallocate (T *p, std::size_t n) |
| template<typename U> | |
| bool | operator!= (const StdRecyclingAllocator< U, TAllocator > &rhs) const noexcept |
| template<typename U> | |
| bool | operator== (const StdRecyclingAllocator< U, TAllocator > &rhs) const noexcept |
| using alib::lang::StdRecyclingAllocator< T, TAllocator >::AllocatorType = TAllocator |
Exposes template parameter TAllocator.
Definition at line 1207 of file allocation.hpp.
| using alib::lang::StdRecyclingAllocator< T, TAllocator >::const_reference = const T& |
Type definition as required by C++ library standards.
Definition at line 1206 of file allocation.hpp.
| using alib::lang::StdRecyclingAllocator< T, TAllocator >::difference_type = ptrdiff_t |
Type definition as required by C++ library standards.
Definition at line 1202 of file allocation.hpp.
| using alib::lang::StdRecyclingAllocator< T, TAllocator >::is_always_equal = std::false_type |
Type definition as required by C++ library standards.
Definition at line 1204 of file allocation.hpp.
| using alib::lang::StdRecyclingAllocator< T, TAllocator >::reference = T& |
Type definition as required by C++ library standards.
Definition at line 1205 of file allocation.hpp.
| using alib::lang::StdRecyclingAllocator< T, TAllocator >::size_type = size_t |
Type definition as required by C++ library standards.
Definition at line 1201 of file allocation.hpp.
| using alib::lang::StdRecyclingAllocator< T, TAllocator >::value_type = T |
Type definition as required by C++ library standards.
Definition at line 1203 of file allocation.hpp.
| RTTRAllocator<TAllocator>& alib::lang::StdRecyclingAllocator< T, TAllocator >::recycler |
The only member of this allocator type used to perform all duties.
Definition at line 1213 of file allocation.hpp.
|
inline |
Copy constructor using an instance of a different template type.
| TSibling | The originating allocator's type (StdRecyclingAllocator<X>). |
| StdRecyclingAllocator | The originating allocator of type TSibling . |
Definition at line 1228 of file allocation.hpp.
|
inlineconstexpr |
Constructor for the initial allocator instantiation.
| pRecycler | The recycler to for allocations and deallocations. |
Definition at line 1233 of file allocation.hpp.
|
inlinenodiscard |
Implementation of std::allocator interface. Dependent on whether a single or multiple object is requested, this method invokes either void * Get(size_t, size_t, const type_info&) or void * AllocUnrelated(size_t, size_t, const type_info&) on the field recycler.
| n | The number of requested objects to allocate storage for. |
Definition at line 1266 of file allocation.hpp.
|
inline |
Implementation of std::allocator interface. Dependent on whether a single or multiple objects are de-allocated (parameter n), this method invokes either void Recycle(void*, size_t, size_t, const type_info&) or void RecycleChunk(void*, size_t, const type_info&) on field recycler.
| p | Pointer to the object to deallocate. |
| n | The number of objects to de-allocate. |
Definition at line 1282 of file allocation.hpp.
|
inlinenoexcept |
Comparison operator.
| U | The allocation type of the other allocator. |
| rhs | The right-hand side allocator. |
false if this and rhs use the same recycler, true otherwise. Definition at line 1252 of file allocation.hpp.
|
inlinenoexcept |
Comparison operator.
| U | The allocation type of the other allocator. |
| rhs | The right-hand side allocator. |
true if this and rhs use the same recycler, false otherwise. Definition at line 1244 of file allocation.hpp.