BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL > Class Template Reference

#include <bsltf_stdstatefulallocator.h>

Classes

struct  rebind
 

Public Types

typedef TYPE value_type
 
typedef std::size_t size_type
 
typedef std::ptrdiff_t difference_type
 
typedef TYPE * pointer
 
typedef const TYPE * const_pointer
 
typedef bsl::integral_constant< bool, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT > propagate_on_container_copy_assignment
 
typedef bsl::integral_constant< bool, PROPAGATE_ON_CONTAINER_SWAP > propagate_on_container_swap
 
typedef bsl::integral_constant< bool, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT > propagate_on_container_move_assignment
 
typedef bsl::integral_constant< bool, IS_ALWAYS_EQUAL > is_always_equal
 

Public Member Functions

 BSLMF_NESTED_TRAIT_DECLARATION (StdStatefulAllocator, bslma::IsStdAllocator)
 
 StdStatefulAllocator (bslma::Allocator *allocator=0)
 
 StdStatefulAllocator (const StdStatefulAllocator &original)=default
 
template<class BDE_OTHER_TYPE >
 StdStatefulAllocator (const StdStatefulAllocator< BDE_OTHER_TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL > &original)
 
 ~StdStatefulAllocator ()=default
 
StdStatefulAllocatoroperator= (const StdStatefulAllocator &rhs)=default
 
TYPE * allocate (bslma::Allocator::size_type numElements)
 
template<class ELEMENT_TYPE , class... Args>
void construct (ELEMENT_TYPE *address, Args &&... arguments)
 
void deallocate (TYPE *address, bslma::Allocator::size_type numElements)
 
template<class ELEMENT_TYPE >
void destroy (ELEMENT_TYPE *address)
 
size_type max_size () const
 
StdStatefulAllocator select_on_container_copy_construction () const
 
bslma::Allocatorallocator () const
 Return the address of the allocator wrapped by this object.
 

Detailed Description

template<class TYPE, bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
class bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >

This allocator implements the minimal interface to comply with section 17.6.3.5 ([allocator.requirements]) of the C++11 standard, while maintaining a distinct object state - in this case a wrapped pointer to a bslma::Allocator. The template is configurable to control its allocator propagation properties, but does not support the BDE "scoped" allocator model, as scoped allocators should never propagate. Instances of this allocator delegate their operations to the wrapped allocator that constitutes its state. Note that while we define the various traits used by the C++11 allocator traits facility, they actually mean very little for this component, as it is the consumer of the allocator's responsibility to check and apply the traits correctly, typically by using bsl::allocator_traits to perform all memory allocation tasks rather than using the allocator directly. The PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION flag is consumed directly though, in the static member function select_on_container_copy_construction.

See bsltf_stdstatefulallocator

Member Typedef Documentation

◆ const_pointer

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
typedef const TYPE* bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::const_pointer

◆ difference_type

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
typedef std::ptrdiff_t bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::difference_type

◆ is_always_equal

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
typedef bsl::integral_constant<bool, IS_ALWAYS_EQUAL> bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::is_always_equal

◆ pointer

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
typedef TYPE* bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::pointer

◆ propagate_on_container_copy_assignment

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
typedef bsl::integral_constant<bool, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT> bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::propagate_on_container_copy_assignment

◆ propagate_on_container_move_assignment

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
typedef bsl::integral_constant<bool, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT> bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::propagate_on_container_move_assignment

◆ propagate_on_container_swap

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
typedef bsl::integral_constant<bool, PROPAGATE_ON_CONTAINER_SWAP> bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::propagate_on_container_swap

◆ size_type

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
typedef std::size_t bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::size_type

◆ value_type

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
typedef TYPE bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::value_type

Constructor & Destructor Documentation

◆ StdStatefulAllocator() [1/3]

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, bool PROPAGATE_ON_CONTAINER_SWAP, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, bool IS_ALWAYS_EQUAL>
bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::StdStatefulAllocator ( bslma::Allocator allocator = 0)
inlineexplicit

Create a StdStatefulAllocator object wrapping the specified allocator.

◆ StdStatefulAllocator() [2/3]

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::StdStatefulAllocator ( const StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL > &  original)
default

◆ StdStatefulAllocator() [3/3]

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, bool PROPAGATE_ON_CONTAINER_SWAP, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, bool IS_ALWAYS_EQUAL>
template<class BDE_OTHER_TYPE >
bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::StdStatefulAllocator ( const StdStatefulAllocator< BDE_OTHER_TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL > &  original)
inline

Create a StdStatefulAllocator object wrapping the same test allocator as the specified original.

◆ ~StdStatefulAllocator()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::~StdStatefulAllocator ( )
default

Member Function Documentation

◆ allocate()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, bool PROPAGATE_ON_CONTAINER_SWAP, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, bool IS_ALWAYS_EQUAL>
TYPE * bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::allocate ( bslma::Allocator::size_type  numElements)
inline

Allocate enough (properly aligned) space for the specified numElements of the (template parameter) type TYPE. If the underlying bslma::Allocator is unable to fulfill the allocation request, an exception (typically bsl::bad_alloc) will be thrown.

◆ allocator()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, bool PROPAGATE_ON_CONTAINER_SWAP, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, bool IS_ALWAYS_EQUAL>
bslma::Allocator * bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::allocator ( ) const
inline

◆ BSLMF_NESTED_TRAIT_DECLARATION()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::BSLMF_NESTED_TRAIT_DECLARATION ( StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >  ,
bslma::IsStdAllocator   
)

◆ construct()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, bool PROPAGATE_ON_CONTAINER_SWAP, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, bool IS_ALWAYS_EQUAL>
template<class ELEMENT_TYPE , class... Args>
void bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::construct ( ELEMENT_TYPE *  address,
Args &&...  arguments 
)
inline

Construct an object of the (template parameter) ELEMENT_TYPE, by forwarding the specified (variable number of) arguments to the corresponding constructor of ELEMENT_TYPE, at the specified uninitialized memory address. The behavior is undefined unless address is properly aligned for objects of ELEMENT_TYPE.

◆ deallocate()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, bool PROPAGATE_ON_CONTAINER_SWAP, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, bool IS_ALWAYS_EQUAL>
void bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::deallocate ( TYPE *  address,
bslma::Allocator::size_type  numElements 
)
inline

Return memory previously allocated at the specified address for numElements back to this allocator. The numElements argument is ignored by this allocator type. The behavior is undefined unless address was allocated using this allocator object and has not already been deallocated.

◆ destroy()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, bool PROPAGATE_ON_CONTAINER_SWAP, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, bool IS_ALWAYS_EQUAL>
template<class ELEMENT_TYPE >
void bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::destroy ( ELEMENT_TYPE *  address)
inline

Invoke the ELEMENT_TYPE destructor for the object at the specified address.

◆ max_size()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, bool PROPAGATE_ON_CONTAINER_SWAP, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, bool IS_ALWAYS_EQUAL>
StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::size_type bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::max_size ( ) const
inline

Return the maximum number of elements of type TYPE that can be allocated using this allocator in a single call to the allocate method. Note that there is no guarantee that attempts at allocating less elements than the value returned by max_size will not throw. *** DO NOT RELY ON THE CONTINUING PRESENT OF THIS METHOD *** THIS METHOD WILL BE REMOVED ONCE bslstl::allocator_traits PROPERLY DEDUCES AN IMPLEMENTATION FOR THIS FUNCTION WHEN NOT SUPPLIED BY THE ALLOCATOR DIRECTLY.

◆ operator=()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION = true, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT = true, bool PROPAGATE_ON_CONTAINER_SWAP = true, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT = true, bool IS_ALWAYS_EQUAL = false>
StdStatefulAllocator & bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::operator= ( const StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL > &  rhs)
default

◆ select_on_container_copy_construction()

template<class TYPE , bool PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, bool PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, bool PROPAGATE_ON_CONTAINER_SWAP, bool PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, bool IS_ALWAYS_EQUAL>
StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL > bsltf::StdStatefulAllocator< TYPE, PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION, PROPAGATE_ON_CONTAINER_COPY_ASSIGNMENT, PROPAGATE_ON_CONTAINER_SWAP, PROPAGATE_ON_CONTAINER_MOVE_ASSIGNMENT, IS_ALWAYS_EQUAL >::select_on_container_copy_construction ( ) const
inline

Return a copy of this object if the bool template parameter PROPAGATE_ON_CONTAINER_COPY_CONSTRUCTION is true, and a copy of a StdStatefulAllocator object wrapping the default allocator otherwise.


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