Quick Links:

bal | bbl | bdl | bsl

Public Types | Static Public Member Functions

bsl::allocator_traits< ALLOCATOR_TYPE >::rebind_traits< ELEMENT_TYPE > Struct Template Reference

#include <bslma_allocatortraits.h>

Inheritance diagram for bsl::allocator_traits< ALLOCATOR_TYPE >::rebind_traits< ELEMENT_TYPE >:
bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >

List of all members.

Public Types

typedef
allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type 
allocator_type
typedef
allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type::value_type 
value_type
typedef
BloombergLP::bslma::AllocatorTraits_PointerType
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
pointer
typedef
BloombergLP::bslma::AllocatorTraits_ConstPointerType
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
const_pointer
typedef
BloombergLP::bslma::AllocatorTraits_VoidPointerType
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
void_pointer
typedef
BloombergLP::bslma::AllocatorTraits_ConstVoidPointerType
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
const_void_pointer
typedef
BloombergLP::bslma::AllocatorTraits_DifferenceType
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
difference_type
typedef
BloombergLP::bslma::AllocatorTraits_SizeType
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
size_type
typedef
BloombergLP::bslma::AllocatorTraits_IsAlwaysEqual
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
is_always_equal
typedef
BloombergLP::bslma::AllocatorTraits_PropOnCopyAssign
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
propagate_on_container_copy_assignment
typedef
BloombergLP::bslma::AllocatorTraits_PropOnMoveAssign
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
propagate_on_container_move_assignment
typedef
BloombergLP::bslma::AllocatorTraits_PropOnSwap
< allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type >::type 
propagate_on_container_swap

Static Public Member Functions

static pointer allocate (allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type &basicAllocator, size_type n)
static pointer allocate (allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type &basicAllocator, size_type n, const_void_pointer hint)
static void deallocate (allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type &basicAllocator, pointer elementAddr, size_type n)
static void construct (allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type &basicAllocator, ELEMENT_TYPE *elementAddr, Args &&...arguments)
static void destroy (allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type &basicAllocator, ELEMENT_TYPE *elementAddr)
static size_type max_size (const allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type &basicAllocator) BSLS_KEYWORD_NOEXCEPT
static
allocator_traits::template
rebind_alloc< ELEMENT_TYPE >
::allocator_type 
select_on_container_copy_construction (const allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type &rhs)

template<class ALLOCATOR_TYPE>
template<class ELEMENT_TYPE>
struct bsl::allocator_traits< ALLOCATOR_TYPE >::rebind_traits< ELEMENT_TYPE >


Member Typedef Documentation

typedef allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::allocator_type [inherited]
typedef allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type ::value_type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::value_type [inherited]
typedef BloombergLP::bslma::AllocatorTraits_PointerType<allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::pointer [inherited]
typedef BloombergLP::bslma::AllocatorTraits_ConstPointerType<allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::const_pointer [inherited]
typedef BloombergLP::bslma::AllocatorTraits_VoidPointerType<allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::void_pointer [inherited]
typedef BloombergLP::bslma:: AllocatorTraits_ConstVoidPointerType<allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::const_void_pointer [inherited]
typedef BloombergLP::bslma::AllocatorTraits_DifferenceType<allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::difference_type [inherited]
typedef BloombergLP::bslma::AllocatorTraits_SizeType<allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::size_type [inherited]
typedef BloombergLP::bslma::AllocatorTraits_IsAlwaysEqual< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::is_always_equal [inherited]
typedef BloombergLP::bslma::AllocatorTraits_PropOnCopyAssign< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::propagate_on_container_copy_assignment [inherited]
typedef BloombergLP::bslma::AllocatorTraits_PropOnMoveAssign< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::propagate_on_container_move_assignment [inherited]
typedef BloombergLP::bslma::AllocatorTraits_PropOnSwap< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::propagate_on_container_swap [inherited]

Member Function Documentation

static pointer bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::allocate ( allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::template rebind_alloc< ELEMENT_TYPE >::allocator_type basicAllocator,
size_type  n 
) [static, inherited]

Return basicAllocator.allocate(n).

static pointer bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::allocate ( allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::template rebind_alloc< ELEMENT_TYPE >::allocator_type basicAllocator,
size_type  n,
const_void_pointer  hint 
) [static, inherited]

Return basicAllocator.allocate(n, hint).

static void bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::deallocate ( allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::template rebind_alloc< ELEMENT_TYPE >::allocator_type basicAllocator,
pointer  elementAddr,
size_type  n 
) [static, inherited]

Invoke basicAllocator.deallocate(elementAddr, n). The behavior is undefined unless the specified elementAddr was returned from a prior call to the allocate method of an allocator that compares equal to the specified allocator, and has not yet been passed to a deallocate call of such an allocator object.

static void bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::construct ( allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::template rebind_alloc< ELEMENT_TYPE >::allocator_type basicAllocator,
ELEMENT_TYPE *  elementAddr,
Args &&...  arguments 
) [static, inherited]

Construct an object of (template parameter) type ELEMENT_TYPE at the specified elementAddr, either by 1) calling the construct method on basicAllocator with elemAddr and the specified (variable number of) arguments if the (template parameter) type ALLOCATOR_TYPE defines such a method, or 2) forwarding the specified (variable number of) arguments to the constructor of ELEMENT_TYPE directly (and ignoring basicAllocator) otherwise. The behavior is undefined unless elementAddr refers to valid, uninitialized storage.

static void bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::destroy ( allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::template rebind_alloc< ELEMENT_TYPE >::allocator_type basicAllocator,
ELEMENT_TYPE *  elementAddr 
) [static, inherited]

Destroy the object of (template parameter) type ELEMENT_TYPE at the specified elementAddr, either by 1) calling the destroy method on basicAllocator with elemAddr as the sole argument if the (template parameter) type ALLOCATOR_TYPE defines such a method, or 2) calling the destructor directly on elementAddr (and ignoring basicAllocator) otherwise. The behavior is undefined unless elementAddr refers to a valid, constructed object.

static size_type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::max_size ( const allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::template rebind_alloc< ELEMENT_TYPE >::allocator_type basicAllocator  )  [static, inherited]

Return the largest number of value_type objects that could reasonably be returned by a single invocation of allocate for the specified allocator, i.e., allocator.max_size().

static allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type bsl::allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::select_on_container_copy_construction ( const allocator_traits< allocator_traits::template rebind_alloc< ELEMENT_TYPE >::allocator_type >::template rebind_alloc< ELEMENT_TYPE >::allocator_type rhs  )  [static, inherited]

Return a copy of the allocator that should be used to copy- construct one container from another container whose allocator is the specified rhs. If the parameterized ALLOCATOR_TYPE defines a method select_on_container_copy_construction, this function returns the result of calling that method on rhs; otherwise, this method enforces the default policy of propagating the allocator on copy construction, as is standard practice for standard allocators (i.e., returns rhs). Note that the specialization of this class template for bsl::allocator (in the bslma_stdallocator component) provides the alternate default behavior of not propagating the allocator on copy construction (i.e., returning a default-constructed allocator object).


The documentation for this struct was generated from the following file: