![]() |
Home | Libraries | People | FAQ | More |
boost::interprocess::allocator
// In header: <boost/interprocess/allocators/allocator.hpp> template<typename T, typename SegmentManager> class allocator { public: // types typedef ; typedef ; typedef ; typedef ; typedef ; typedef ; typedef ; typedef ; typedef ; typedef allocator, ; // member classes/structs/unions template<typename T2> struct rebind { // types typedef allocator< ; }; // construct/copy/destruct (); (allocator &); template<typename T2> (allocator< ); // public member functions () ; (, = ); (, ); () ; () ; (, , , ); (, , ); (, , ); (); (); (, ); (); (); () ; () ; template<typename P> (, ); (); // friend functions (, ); };
An STL compatible allocator that uses a segment manager as memory source. The internal pointer type will of the same type (raw, smart) as "typename SegmentManager::void_pointer" type. This allows placing the allocator in shared memory, memory mapped-files, etc...
allocator
public member functions() ;
Returns the segment manager. Never throws
( count, hint = );
Allocates memory for an array of count elements. Throws boost::interprocess::bad_alloc
if there is no enough memory
( ptr, );
Deallocates memory previously allocated. Never throws
() ;
Returns the number of elements that could be allocated. Never throws
( p) ;
Returns maximum the number of objects the previously allocated memory pointed by p can hold. This size only works for memory allocated with allocate, allocation_command and allocate_many.
( command, limit_size, prefer_in_recvd_out_size, reuse);
( elem_size, num_elements, chain);
Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)
( elem_sizes, n_elements, chain);
Allocates n_elements elements, each one of size elem_sizes[i]in a contiguous block of memory. The elements must be deallocated
( chain);
Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)
();
Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws boost::interprocess::bad_alloc
if there is no enough memory
( num_elements, chain);
Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().
( p);
Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws
( chain);
Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().
( value) ;
Returns address of mutable object. Never throws
( value) ;
Returns address of non mutable object. Never throws
template<typename P> ( ptr, p);
Constructs an object Throws if T's constructor throws For backwards compatibility with libraries using C++03 allocators
( ptr);
Destroys object. Throws if object's destructor throws