![]() |
Home | Libraries | People | FAQ | More |
boost::container::pmr::resource_adaptor_imp
// In header: <boost/container/pmr/resource_adaptor.hpp> template<typename Allocator> class resource_adaptor_imp : public { public: // types typedef Allocator ; // construct/copy/destruct (); (const resource_adaptor_imp &); (resource_adaptor_imp &&); (const Allocator &); (Allocator &&); resource_adaptor_imp & (const resource_adaptor_imp &); resource_adaptor_imp & (resource_adaptor_imp &&); // public member functions allocator_type & (); const allocator_type & () ; // protected member functions void * (, ); void (void *, , ); bool (const memory_resource &) ; // private member functions void * (, ); void (void *, , ); // private static functions void * (void *); (); (); };
An instance of resource_adaptor<Allocator> is an adaptor that wraps a memory_resource interface around Allocator. In order that resource_adaptor<X<T>> and resource_adaptor<X<U>> are the same type for any allocator template X and types T and U, resource_adaptor<Allocator> is rendered as an alias to this class template such that Allocator is rebound to a char value type in every specialization of the class template. The requirements on this class template are defined below. In addition to the Allocator requirements, the parameter to resource_adaptor shall meet the following additional requirements:
typename allocator_traits<Allocator>:: pointer
shall be identical to typename allocator_traits<Allocator>:: value_type*
.
typename allocator_traits<Allocator>:: const_pointer
shall be identical to typename allocator_traits<Allocator>:: value_type const*
.
typename allocator_traits<Allocator>:: void_pointer
shall be identical to void*
.
typename allocator_traits<Allocator>:: const_void_pointer
shall be identical to void const*
.
resource_adaptor_imp
public
construct/copy/destruct();
Effects: Default constructs m_alloc.
(const resource_adaptor_imp & other);
Effects: Copy constructs m_alloc.
(resource_adaptor_imp && other);
Effects: Move constructs m_alloc.
(const Allocator & a2);
Effects: Initializes m_alloc with a2.
(Allocator && a2);
Effects: Initializes m_alloc with a2.
resource_adaptor_imp & (const resource_adaptor_imp & other);
Effects: Copy assigns m_alloc.
resource_adaptor_imp & (resource_adaptor_imp && other);
Effects: Move assigns m_alloc.
resource_adaptor_imp
public member functionsallocator_type & ();Effects: Returns m_alloc.
const allocator_type & () ;Effects: Returns m_alloc.
resource_adaptor_imp
protected member functionsvoid * ( bytes, alignment);
Returns: Allocated memory obtained by calling m_alloc.allocate. The size and alignment of the allocated memory shall meet the requirements for a class derived from memory_resource
.
void (void * p, bytes, alignment);
Requires: p was previously allocated using A.allocate, where A == m_alloc, and not subsequently deallocated.
Effects: Returns memory to the allocator using m_alloc.deallocate().
bool (const memory_resource & other) ;
Let p be dynamic_cast<const resource_adaptor_imp*>(&other).
Returns: false if p is null, otherwise the value of m_alloc == p->m_alloc.