[#bsl-allocator_traits-0ae]
= xref:bsl.adoc[bsl]::xref:bsl/allocator_traits-0108.adoc[allocator&lowbar;traits]&lt;std::allocator&lt;ALLOCATOR&lowbar;TYPE&gt;&gt;
:relfileprefix: ../
:mrdocs:

== Synopsis

Declared in `&lt;bslma&lowbar;allocatortraits&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class ALLOCATOR&lowbar;TYPE&gt;
struct xref:bsl/allocator_traits-0108.adoc[allocator&lowbar;traits]&lt;std::allocator&lt;ALLOCATOR&lowbar;TYPE&gt;&gt;
    : std::allocator&lowbar;traits&lt;std::allocator&lt;ALLOCATOR&lowbar;TYPE&gt;&gt;
----

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `std::allocator&lowbar;traits&lt;std::allocator&lt;ALLOCATOR&lowbar;TYPE&gt;&gt;`
| Uniform interface to all allocator types&period;
|===

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/allocator_traits-0ae/allocator_type.adoc[`allocator&lowbar;type`] 
| The allocator type
| xref:bsl/allocator_traits-0ae/const_pointer.adoc[`const&lowbar;pointer`] 
| The allocator&apos;s const pointer type&period;
| xref:bsl/allocator_traits-0ae/const_void_pointer.adoc[`const&lowbar;void&lowbar;pointer`] 
| The allocator&apos;s const void pointer type&period;
| xref:bsl/allocator_traits-0ae/difference_type.adoc[`difference&lowbar;type`] 
| The allocator&apos;s difference type
| xref:bsl/allocator_traits-0ae/is_always_equal.adoc[`is&lowbar;always&lowbar;equal`] 
| Whether all instances of the allocator type compare equal&period;
| xref:bsl/allocator_traits-0ae/pointer.adoc[`pointer`] 
| The allocator&apos;s pointer type&period;
| xref:bsl/allocator_traits-0ae/propagate_on_container_copy_assignment.adoc[`propagate&lowbar;on&lowbar;container&lowbar;copy&lowbar;assignment`] 
| How the allocator is propagated on copy assignment
| xref:bsl/allocator_traits-0ae/propagate_on_container_move_assignment.adoc[`propagate&lowbar;on&lowbar;container&lowbar;move&lowbar;assignment`] 
| How the allocator is propagated on move assignment
| xref:bsl/allocator_traits-0ae/propagate_on_container_swap.adoc[`propagate&lowbar;on&lowbar;container&lowbar;swap`] 
| How the allocator is propagated on swap
| xref:bsl/allocator_traits-0ae/rebind_alloc.adoc[`rebind&lowbar;alloc`] 
| 
| xref:bsl/allocator_traits-0ae/rebind_traits.adoc[`rebind&lowbar;traits`] 
| 
| xref:bsl/allocator_traits-0ae/size_type.adoc[`size&lowbar;type`] 
| The allocator&apos;s size type
| xref:bsl/allocator_traits-0ae/value_type.adoc[`value&lowbar;type`] 
| The allocated type
| xref:bsl/allocator_traits-0ae/void_pointer.adoc[`void&lowbar;pointer`] 
| The allocator&apos;s void pointer type&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/allocator_traits-0ae/allocate-02.adoc[`allocate`] 
| Allocate memory&period;
| xref:bsl/allocator_traits-0ae/construct.adoc[`construct`] 
| Construct an object of type `&lowbar;Tp`
| xref:bsl/allocator_traits-0ae/deallocate.adoc[`deallocate`] 
| Deallocate memory&period;
| xref:bsl/allocator_traits-0ae/destroy.adoc[`destroy`] 
| Destroy an object of type _&lowbar;Tp_
| xref:bsl/allocator_traits-0ae/max_size.adoc[`max&lowbar;size`] 
| The maximum supported allocation size
| xref:bsl/allocator_traits-0ae/select_on_container_copy_construction.adoc[`select&lowbar;on&lowbar;container&lowbar;copy&lowbar;construction`] 
| Obtain an allocator to use when copying a container&period;
|===



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