Quick Links: |
#include <bslma_allocatortraits.h>
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) |
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] |
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).