[#BloombergLP-bsltf-StdAllocatorAdaptor]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bsltf.adoc[bsltf]::StdAllocatorAdaptor
:relfileprefix: ../../
:mrdocs:

Provide a facade allocator that propagates adapted allocator state&period;

== Synopsis

Declared in `&lt;bsltf&lowbar;stdallocatoradaptor&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class ALLOCATOR&gt;
class StdAllocatorAdaptor
    : public ALLOCATOR
----

== Description

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&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `ALLOCATOR`
| 
|===

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/rebind.adoc[`rebind`] 
| Provide a namespace for a rebound allocator adaptor type&period;
|===


== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/const_pointer.adoc[`const&lowbar;pointer`] 
| Alias for `ALLOCATOR&colon;&colon;const&lowbar;pointer`&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/const_reference.adoc[`const&lowbar;reference`] 
| Alias for `ALLOCATOR&colon;&colon;const&lowbar;reference`&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/difference_type.adoc[`difference&lowbar;type`] 
| Alias for `ALLOCATOR&colon;&colon;difference&lowbar;type`&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/pointer.adoc[`pointer`] 
| Alias for `ALLOCATOR&colon;&colon;pointer`&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/reference.adoc[`reference`] 
| Alias for `ALLOCATOR&colon;&colon;reference`&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/size_type.adoc[`size&lowbar;type`] 
| Alias for `ALLOCATOR&colon;&colon;size&lowbar;type`&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/value_type.adoc[`value&lowbar;type`] 
| Alias for `ALLOCATOR&colon;&colon;value&lowbar;type`&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/2constructor-088.adoc[`StdAllocatorAdaptor`]         [.small]#[constructor]#
| Create a standard allocator adaptor object for a default&hyphen;constructed allocator object of the (template parameter) type `ALLOCATOR`&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/2constructor-00.adoc[`StdAllocatorAdaptor`]         [.small]#[constructor]#
| Create a copy of the specified `original` allocator adaptor&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/2constructor-089.adoc[`StdAllocatorAdaptor`]         [.small]#[constructor]#
| Create a copy of the specified `other` allocator adaptor&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/2constructor-07.adoc[`StdAllocatorAdaptor`]         [.small]#[constructor]#
| Create a standard allocator adaptor object from the null pointer constant&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/2constructor-06.adoc[`StdAllocatorAdaptor`]         [.small]#[constructor]#
| Create a standard allocator adaptor object for the specified `allocator` of the (template parameter) type `ALLOCATOR`&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/operator_assign.adoc[`operator&equals;`] 
| Assign to this object the value of the specified `original` object, and return a reference providing modifiable access to this object&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/allocator.adoc[`allocator`] 
| Return a reference to the non&hyphen;modifiable allocator instance associated with this standard allocator adaptor&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/construct.adoc[`construct`] 
| Construct an object of `ELEMENT&lowbar;TYPE` at the specified address&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/select_on_container_copy_construction.adoc[`select&lowbar;on&lowbar;container&lowbar;copy&lowbar;construction`] 
| Return an adaptor for the allocator selected on container copy&period;
| xref:BloombergLP/bsltf/StdAllocatorAdaptor/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;StdAllocatorAdaptor, IsStdAllocator&gt;`] 
| Declare `StdAllocatorAdaptor` as a standard allocator&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bsltf/operator_not_eq-092.adoc[`operator!&equals;`]
| Return whether two allocator adaptors do not compare equal&period;
| xref:BloombergLP/bsltf/operator_eq-099.adoc[`operator&equals;&equals;`]
| Return whether two allocator adaptors compare equal&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
