[For complete, up-to-date TBB information visit: http://www.ThreadingBuildingBlocks.org]
The allocator concept for allocators in IntelĀ® Threading Building Blocks is similar to the "Allocator requirements" in Table 32 of the ISO C++ Standard, but with further guarantees required by the ISO C++ Standard (Section 20.1.5 paragraph 4) for use with ISO C++ containers. Table 18 summarizes the allocator concept. Here, A and B represent instances of the allocator class.
Table 18: Allocator Concept
Pseudo-Signature
Semantics
typedef T* A::pointer
Pointer to T
typedef const T* A::const_pointer
Pointer to const T
typedef T& A::reference
Reference to T
typedef const T& A::const_reference
Reference to const T
typedef T A::value_type
Type of value to be allocated
typedef size_t A::size_type
Type for representing number of values
typedef ptrdiff_t A::difference_type
Type for representing pointer difference
template<typename U> struct rebind {
typedef A<U> A::other;
};
Rebind to a different type U
A() throw()
Default constructor
A( const A& ) throw()
Copy constructor
template<typename U> A( const A& )
Rebinding constructor
~A() throw()
Destructor
T* A::address( T& x ) const
Take address
const T* A::const_address( const T& x ) const
Take const address
T* A::allocate( size_type n, void* hint=0 )
Allocate space for n values
void A::deallocate( T* p, size_t n )
Deallocate n values
size_type A::max_size() const throw()
Maximum plausible argument to method allocate
void A::construct( T* p, const T& value )
new(p) T(value)
void A::destroy( T* p )
p->T::~T()
bool operator==( const A&, const B& )
Return true
bool operator!=( const A&, const B& )
Return false
Model Types
Template classes scalable_allocator ( 5.2) and cached_aligned_allocator ( 5.3) model the Allocator concept.
[For complete, up-to-date TBB information visit: http://www.ThreadingBuildingBlocks.org]