Array allocator. More...
#include <ArrayAllocator.hpp>
Public Types | |
using | value_type = T |
Element type. | |
using | size_type = typename std::vector< value_type >::size_type |
Size type. | |
using | reference = typename std::vector< value_type >::reference |
Reference type alias. | |
using | const_reference = typename std::vector< value_type >::const_reference |
Constant reference type alias. | |
Public Member Functions | |
size_type | GetIndex (value_type *ptr) const |
Gets the index of the given pointer. More... | |
template<class... Args> | |
size_type | Allocate (Args &&... args) |
Allocates an entry in the array with the given constructor parameters. More... | |
size_type | Allocate (const value_type ©) |
Allocates an entry in the array with the given instance. More... | |
void | Free (size_type index) |
Frees the previously-allocated index entry. More... | |
bool | FindFree (size_type index) const noexcept |
Finds whether the given index is in the free list. More... | |
reference | operator[] (size_type pos) |
Array index operator. More... | |
const_reference | operator[] (size_type pos) const |
Constant array index operator. More... | |
reference | at (size_type pos) |
Bounds checking indexed array accessor. | |
const_reference | at (size_type pos) const |
Bounds checking indexed array accessor. | |
size_type | size () const noexcept |
Gets the size of this instance in number of elements. More... | |
size_type | max_size () const noexcept |
Gets the maximum theoretical size this instance can have in number of elements. | |
size_type | free_size () const noexcept |
Gets the number of elements currently free. More... | |
void | reserve (size_type value) |
Reserves the given number of elements from dynamic memory. More... | |
void | clear () noexcept |
Clears this instance's free pool and allocated pool. | |
Private Attributes | |
std::vector< value_type > | m_data |
Array data (both used & free). | |
std::vector< size_type > | m_free |
Indices of free elements. | |
Array allocator.
|
inline |
Allocates an entry in the array with the given constructor parameters.
Free(size_type)
if the allocated entry needs to be freed. size() - free_size()
will return a value one less than before. Referenced by playrho::d2::WorldImpl::CreateBody(), and playrho::d2::WorldImpl::CreateFixture().
|
inline |
Allocates an entry in the array with the given instance.
Free(size_type)
if the allocated entry needs to be freed. size() - free_size()
will return a value one less than before.
|
inlinenoexcept |
Finds whether the given index is in the free list.
|
inline |
Frees the previously-allocated index entry.
FindFree(size_type)
returns true
for the freed index. free_size()
returns a value one greater than before. std::out_of_range | if given an index that's greater than or equal to the size of this instance as returned by size() . |
Referenced by playrho::d2::WorldImpl::Destroy().
|
inlinenoexcept |
Gets the number of elements currently free.
|
inline |
Gets the index of the given pointer.
|
inline |
|
inline |
|
inline |
Reserves the given number of elements from dynamic memory.
|
inlinenoexcept |