Allocator Concept

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 6-1 summarizes the Allocator Concept. Here, A and B represent instances of the allocator class.

Table 6-1. Allocator Concept

Pseudosignature

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

Return 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 permitted to the method allocate

void A::construct( T* ...

Get Intel Threading Building Blocks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.