[For complete, up-to-date TBB information visit: http://www.ThreadingBuildingBlocks.org]

TbbRef (Ver. 20): 5.1 Allocator Concept

5.1 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 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]