This class template provides the facade of an allocator but mostly delegates operations to the allocator object (of template parameter type) it adapts, except that it enables the propagation of the (stateful) allocator object to constructed elements, if appropriate.

Synopsis

Declared in <bsltf_stdallocatoradaptor.h>

template<class ALLOCATOR>
class StdAllocatorAdaptor
    : public ALLOCATOR

Base Classes

Name

Description

ALLOCATOR

Types

Name

Description

rebind

This nested struct template, parameterized by some BDE_OTHER_TYPE, provides a namespace for an other type alias, which is an allocator type following the same template as this one but that allocates elements of BDE_OTHER_TYPE. Note that this allocator type is convertible to and from other for any BDE_OTHER_TYPE including void.

Type Aliases

Name

Description

const_pointer

Alias for ALLOCATOR::const_pointer.

const_reference

Alias for ALLOCATOR::const_reference.

difference_type

Alias for ALLOCATOR::difference_type.

pointer

Alias for ALLOCATOR::pointer.

reference

Alias for ALLOCATOR::reference.

size_type

Alias for ALLOCATOR::size_type.

value_type

Alias for ALLOCATOR::value_type.

Member Functions

Name

Description

StdAllocatorAdaptor [constructor]

Create a standard allocator adaptor object for a default‐constructed allocator object of the (template parameter) type ALLOCATOR.

StdAllocatorAdaptor [constructor]

Create a copy of the specified original allocator adaptor.

StdAllocatorAdaptor [constructor]

Create a copy of the specified other allocator adaptor.

StdAllocatorAdaptor [constructor]

Create a standard allocator adaptor object from the null pointer constant.

StdAllocatorAdaptor [constructor]

Create a standard allocator adaptor object for the specified allocator of the (template parameter) type ALLOCATOR.

operator=

Assign to this object the value of the specified rhs object, and return a reference providing modifiable access to this object.

allocator

Return a reference to the non‐modifiable allocator instance associated with this standard allocator adaptor.

construct

Construct an object of the (template parameter) ELEMENT_TYPE, by forwarding the allocator instance associated with this allocator adaptor, if appropriate, and 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.

select_on_container_copy_construction

Return an allocator adaptor for the allocator object returned by the select_on_container_copy_construction class method in the allocator_traits class template for the allocator object, of the (template parameter) type ALLOCATOR, associated with this adaptor. The allocator_traits class template presumably delegates this call to the allocator object if such an operation is supported by the ALLOCATOR type, or provides a suitable default behavior if such an operation is not supported.

operator BloombergLP::bslmf::NestedTraitDeclaration<StdAllocatorAdaptor, IsStdAllocator>

Declare StdAllocatorAdaptor as a standard allocator.

Non-Member Functions

Name

Description

operator!=

Return true if the specified lhs and rhs adaptors are not equal and false otherwise. Two allocator adaptor instances are not equal if their associated allocator instances are not equal.

operator==

Return true if the specified lhs and rhs adaptors are equal and false otherwise. Two allocator adaptor instances are equal if their associated allocator instances are equal.

Created with MrDocs