A C++ Standard Library conforming allocator geared towards allocating single chunks. More...
#include <poolfwd.hpp>
Classes | |
struct | rebind |
Nested class rebind allows for transformation from fast_pool_allocator<T> to fast_pool_allocator<U>. More... | |
Public Types | |
typedef T | value_type |
typedef UserAllocator | user_allocator |
typedef Mutex | mutex |
typedef value_type * | pointer |
typedef const value_type * | const_pointer |
typedef value_type & | reference |
typedef const value_type & | const_reference |
typedef pool< UserAllocator > ::size_type | size_type |
typedef pool< UserAllocator > ::difference_type | difference_type |
Public Member Functions | |
BOOST_STATIC_CONSTANT (unsigned, next_size=NextSize) | |
fast_pool_allocator () | |
template<typename U > | |
fast_pool_allocator (const fast_pool_allocator< U, UserAllocator, Mutex, NextSize, MaxSize > &) | |
void | construct (const pointer ptr, const value_type &t) |
void | destroy (const pointer ptr) |
bool | operator== (const fast_pool_allocator &) const |
bool | operator!= (const fast_pool_allocator &) const |
Static Public Member Functions | |
static pointer | address (reference r) |
static const_pointer | address (const_reference s) |
static size_type | max_size () |
static pointer | allocate (const size_type n) |
static pointer | allocate (const size_type n, const void *const) |
static pointer | allocate () |
static void | deallocate (const pointer ptr, const size_type n) |
static void | deallocate (const pointer ptr) |
A C++ Standard Library conforming allocator geared towards allocating single chunks.
While class template pool_allocator
is a more general-purpose solution geared towards efficiently servicing requests for any number of contiguous chunks, fast_pool_allocator
is also a general-purpose solution, but is geared towards efficiently servicing requests for one chunk at a time; it will work for contiguous chunks, but not as well as pool_allocator
.
If you are seriously concerned about performance, use fast_pool_allocator
when dealing with containers such as std::list
, and use pool_allocator
when dealing with containers such as std::vector
.
The template parameters are defined as follows:
T Type of object to allocate/deallocate.
UserAllocator. Defines the method that the underlying Pool will use to allocate memory from the system. See User Allocators for details.
Mutex Allows the user to determine the type of synchronization to be used on the underlying singleton_pool
.
NextSize The value of this parameter is passed to the underlying Pool when it is created.
MaxSize Limit on the maximum size used.
typedef const value_type* boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::const_pointer |
typedef const value_type& boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::const_reference |
typedef pool<UserAllocator>::difference_type boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::difference_type |
typedef Mutex boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::mutex |
typedef value_type* boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::pointer |
typedef value_type& boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::reference |
typedef pool<UserAllocator>::size_type boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::size_type |
typedef UserAllocator boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::user_allocator |
typedef T boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::value_type |
|
inline |
Ensures construction of the underlying singleton_pool IFF an instance of this allocator is constructed during global initialization. See ticket #2359 for a complete explanation at http://svn.boost.org/trac/boost/ticket/2359 .
References T.
|
inline |
Ensures construction of the underlying singleton_pool IFF an instance of this allocator is constructed during global initialization. See ticket #2359 for a complete explanation at http://svn.boost.org/trac/boost/ticket/2359 .
References T.
|
inlinestatic |
|
inlinestatic |
References boost::asio::s.
|
inlinestatic |
References T, and boost::throw_exception().
|
inlinestatic |
Allocate memory .
References boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::allocate().
|
inlinestatic |
Allocate memory.
References T, and boost::throw_exception().
Referenced by boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::allocate().
boost::fast_pool_allocator< T, UserAllocator, Mutex, NextSize, MaxSize >::BOOST_STATIC_CONSTANT | ( | unsigned | , |
next_size | = NextSize |
||
) |
|
inline |
References boost::python::ptr(), and T.
|
inlinestatic |
Deallocate memory.
References boost::python::ptr(), and T.
|
inlinestatic |
deallocate/free
References boost::python::ptr(), and T.
|
inline |
Destroy ptr using destructor.
References boost::detail::void.
|
inlinestatic |
References boost::accumulators::extract::max.
|
inline |
|
inline |