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

Specialization of `allocator&lowbar;traits` for `bsl&colon;&colon;allocator`&period;

== Synopsis

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

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

== Description

This `struct` template provides a specialization of the `allocator&lowbar;traits` class template for `bsl&colon;&colon;allocator`&period; This specialization is not strictly necessary, but its presence speeds up compliation by bypassing a significant amount of metaprogramming&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/allocator_traits-05e/allocator_type.adoc[`allocator&lowbar;type`] 
| This `typedef` is an alias to `allocator&lt;TYPE&gt;`&period;
| xref:bsl/allocator_traits-05e/const_pointer.adoc[`const&lowbar;pointer`] 
| This `typedef` is an alias to `allocator&lowbar;type&colon;&colon;const&lowbar;pointer`&period;
| xref:bsl/allocator_traits-05e/const_void_pointer.adoc[`const&lowbar;void&lowbar;pointer`] 
| This `typedef` is an alias to `allocator&lowbar;type&colon;&colon;const&lowbar;void&lowbar;pointer`&period;
| xref:bsl/allocator_traits-05e/difference_type.adoc[`difference&lowbar;type`] 
| This `typedef` is an alias to `allocator&lowbar;type&colon;&colon;difference&lowbar;type`&period;
| xref:bsl/allocator_traits-05e/is_always_equal.adoc[`is&lowbar;always&lowbar;equal`] 
| `false&lowbar;type`&semi; `bsl&colon;&colon;allocator` instances are not always equal&period;
| xref:bsl/allocator_traits-05e/pointer.adoc[`pointer`] 
| This `typedef` is an alias to `allocator&lowbar;type&colon;&colon;pointer`&period;
| xref:bsl/allocator_traits-05e/propagate_on_container_copy_assignment.adoc[`propagate&lowbar;on&lowbar;container&lowbar;copy&lowbar;assignment`] 
| `false&lowbar;type`&semi; do not propagate the allocator on copy assignment&period;
| xref:bsl/allocator_traits-05e/propagate_on_container_move_assignment.adoc[`propagate&lowbar;on&lowbar;container&lowbar;move&lowbar;assignment`] 
| `false&lowbar;type`&semi; do not propagate the allocator on move assignment&period;
| xref:bsl/allocator_traits-05e/propagate_on_container_swap.adoc[`propagate&lowbar;on&lowbar;container&lowbar;swap`] 
| `false&lowbar;type`&semi; do not propagate the allocator on swap&period;
| xref:bsl/allocator_traits-05e/rebind_alloc.adoc[`rebind&lowbar;alloc`] 
| Rebind this allocator to the specified `ELEMENT&lowbar;TYPE`&period;
| xref:bsl/allocator_traits-05e/rebind_traits.adoc[`rebind&lowbar;traits`] 
| Rebind this allocator traits type to the specified `ELEMENT&lowbar;TYPE`&period;
| xref:bsl/allocator_traits-05e/size_type.adoc[`size&lowbar;type`] 
| This `typedef` is an alias to `allocator&lowbar;type&colon;&colon;size&lowbar;type`&period;
| xref:bsl/allocator_traits-05e/value_type.adoc[`value&lowbar;type`] 
| This `typedef` is an alias to the (template parameter) `TYPE`&period;
| xref:bsl/allocator_traits-05e/void_pointer.adoc[`void&lowbar;pointer`] 
| This `typedef` is an alias to `allocator&lowbar;type&colon;&colon;void&lowbar;pointer`&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/allocator_traits-05e/allocate-04.adoc[`allocate`] 
| `allocate` overloads
| xref:bsl/allocator_traits-05e/construct-02.adoc[`construct`] 
| `construct` overloads
| xref:bsl/allocator_traits-05e/deallocate.adoc[`deallocate`] 
| Deallocate the memory at `p` previously allocated from `m`&period;
| xref:bsl/allocator_traits-05e/destroy.adoc[`destroy`] 
| Destroy the object at the specified `p`&period;
| xref:bsl/allocator_traits-05e/max_size.adoc[`max&lowbar;size`] 
| Return the maximum number of elements allocatable by `m`&period;
| xref:bsl/allocator_traits-05e/select_on_container_copy_construction.adoc[`select&lowbar;on&lowbar;container&lowbar;copy&lowbar;construction`] 
| Return a default&hyphen;constructed allocator for container copy construction&period;
|===



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