[#BloombergLP-bslma-UsesBslmaAllocator-020]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::UsesBslmaAllocator
:relfileprefix: ../../
:mrdocs:

Metafunction that is `true&lowbar;type` if `TYPE` uses the `bslma` allocator idiom&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class TYPE&gt;
struct UsesBslmaAllocator
    : xref:bsl/integral_constant-02.adoc[bsl::integral&lowbar;constant&lt;bool, UsesBslmaAllocator&lowbar;Imp&lt;TYPE&gt;&colon;&colon;value&gt;]
----

== Description

This metafunction is derived from `true&lowbar;type` if `TYPE` adheres to the `bslma` allocator usage idiom and `false&lowbar;type` otherwise&period; Note that this trait must be explicitly associated with a type in order for this metafunction to return true&semi; simply having a constructor that implicitly converts `bslma&colon;&colon;Allocator &ast;` to `TYPE` is deprecated as a means of indicating that a type follows the `bslma` allocator usage idiom&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:bsl/integral_constant-02.adoc[bsl::integral&lowbar;constant&lt;bool, UsesBslmaAllocator&lowbar;Imp&lt;TYPE&gt;&colon;&colon;value&gt;]`
| Metafunction representing a compile&hyphen;time constant of the specified (template parameter) `t&lowbar;TYPE` with the specified (template parameter) `t&lowbar;VALUE`&period;
|===

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/integral_constant-02/type.adoc[`type`] 
| Alias for this `integral&lowbar;constant` specialization&period;
| xref:bsl/integral_constant-02/value_type.adoc[`value&lowbar;type`] 
| Alias for the (template parameter) `t&lowbar;TYPE`&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/integral_constant-02/operator_call.adoc[`operator()`] 
| Return a copy of the template argument `t&lowbar;VALUE`&period;
| xref:bsl/integral_constant-02/2conversion.adoc[`operator t&lowbar;TYPE`] 
| Return a copy of the template argument `t&lowbar;VALUE`&period;
|===


== Static Data Members

[cols="1,4"]
|===
| Name| Description
| xref:bsl/integral_constant-02/value.adoc[`value`] 
| The compile&hyphen;time constant value of this metafunction&period;
|===


== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslma/UsesBslmaAllocator-0a8.adoc[`UsesBslmaAllocator&lt;bsltf::AllocBitwiseMoveableTestType&gt;`] 
| Trait specialization&colon; `AllocBitwiseMoveableTestType` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0b7.adoc[`UsesBslmaAllocator&lt;bsltf::AllocEmplacableTestType&gt;`] 
| Trait indicating `AllocEmplacableTestType` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0a4.adoc[`UsesBslmaAllocator&lt;bdlc::BitArray&gt;`] 
| This template specialization for `UsesBslmaAllocator` indicates that `BitArray` uses `bslma&colon;&colon;Allocator`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-015d.adoc[`UsesBslmaAllocator&lt;BloombergLP::bdlbb::Blob&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Blob` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0de.adoc[`UsesBslmaAllocator&lt;bslx::ByteOutStream&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `ByteOutStream` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0d5.adoc[`UsesBslmaAllocator&lt;bdlt::Calendar&gt;`] 
| Trait indicating `bdlt&colon;&colon;Calendar` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0f0.adoc[`UsesBslmaAllocator&lt;bdlt::CalendarCache&gt;`] 
| Trait indicating `bdlt&colon;&colon;CalendarCache` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-05b.adoc[`UsesBslmaAllocator&lt;balb::Choice1&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Choice1` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0e3a.adoc[`UsesBslmaAllocator&lt;balb::Choice2&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Choice2` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-06d.adoc[`UsesBslmaAllocator&lt;balb::Choice3&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Choice3` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0057.adoc[`UsesBslmaAllocator&lt;balb::Choice4&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Choice4` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-06a7.adoc[`UsesBslmaAllocator&lt;balb::Choice5&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Choice5` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0873.adoc[`UsesBslmaAllocator&lt;balb::CustomString&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `CustomString` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0d9.adoc[`UsesBslmaAllocator&lt;balxml::EncoderOptions&gt;`] 
| Specialize `UsesBslmaAllocator` for `EncoderOptions`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0fb7.adoc[`UsesBslmaAllocator&lt;baljsn::EncoderTestAddress&gt;`] 
| Specialize `UsesBslmaAllocator` for `EncoderTestAddress`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0edc.adoc[`UsesBslmaAllocator&lt;baljsn::EncoderTestChoiceWithAllCategories&gt;`] 
| Specialize `UsesBslmaAllocator` for `EncoderTestChoiceWithAllCategories`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0bd.adoc[`UsesBslmaAllocator&lt;baljsn::EncoderTestChoiceWithAllCategoriesCustomizedType&gt;`] 
| Specialize `UsesBslmaAllocator` for `EncoderTestChoiceWithAllCategoriesCustomizedType`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-05f.adoc[`UsesBslmaAllocator&lt;baljsn::EncoderTestEmployee&gt;`] 
| Specialize `UsesBslmaAllocator` for `EncoderTestEmployee`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-012.adoc[`UsesBslmaAllocator&lt;baljsn::EncoderTestSequenceWithAllCategories&gt;`] 
| Specialize `UsesBslmaAllocator` for `EncoderTestSequenceWithAllCategories`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-022a.adoc[`UsesBslmaAllocator&lt;baljsn::EncoderTestSequenceWithAllCategoriesCustomizedType&gt;`] 
| Specialize `UsesBslmaAllocator` for `EncoderTestSequenceWithAllCategoriesCustomizedType`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0d1.adoc[`UsesBslmaAllocator&lt;balb::FeatureTestMessage&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `FeatureTestMessage` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0e67.adoc[`UsesBslmaAllocator&lt;bsltf::MovableAllocTestType&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `MovableAllocTestType` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-09b.adoc[`UsesBslmaAllocator&lt;bsltf::MoveOnlyAllocTestType&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `MoveOnlyAllocTestType` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0fbe.adoc[`UsesBslmaAllocator&lt;bsltf::NonOptionalAllocTestType&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `NonOptionalAllocTestType` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-07f.adoc[`UsesBslmaAllocator&lt;bdlt::PackedCalendar&gt;`] 
| Trait indicating `bdlt&colon;&colon;PackedCalendar` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0f4.adoc[`UsesBslmaAllocator&lt;bdlde::QuotedPrintableEncoder&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `QuotedPrintableEncoder` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-02e.adoc[`UsesBslmaAllocator&lt;balb::Request&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Request` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-024c.adoc[`UsesBslmaAllocator&lt;balb::Response&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Response` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0d2.adoc[`UsesBslmaAllocator&lt;balb::Sequence1&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Sequence1` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-01e.adoc[`UsesBslmaAllocator&lt;balb::Sequence2&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Sequence2` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-096.adoc[`UsesBslmaAllocator&lt;balb::Sequence3&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Sequence3` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-014.adoc[`UsesBslmaAllocator&lt;balb::Sequence4&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Sequence4` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0c6.adoc[`UsesBslmaAllocator&lt;balb::Sequence5&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Sequence5` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-05c.adoc[`UsesBslmaAllocator&lt;balb::Sequence6&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `Sequence6` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-00d.adoc[`UsesBslmaAllocator&lt;balb::SequenceWithAnonymity&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `SequenceWithAnonymity` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-091.adoc[`UsesBslmaAllocator&lt;balb::SequenceWithAnonymityChoice&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `SequenceWithAnonymityChoice` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-093.adoc[`UsesBslmaAllocator&lt;balb::SequenceWithAnonymityChoice1&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `SequenceWithAnonymityChoice1` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0a6.adoc[`UsesBslmaAllocator&lt;balb::SequenceWithAnonymityChoice2&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `SequenceWithAnonymityChoice2` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0228.adoc[`UsesBslmaAllocator&lt;balb::SimpleRequest&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `SimpleRequest` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-025.adoc[`UsesBslmaAllocator&lt;bslx::TestOutStream&gt;`] 
| Trait indicating `bslx&colon;&colon;TestOutStream` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-06e.adoc[`UsesBslmaAllocator&lt;bslmt::ThreadGroup&gt;`] 
| Trait indicating `bslmt&colon;&colon;ThreadGroup` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-03d.adoc[`UsesBslmaAllocator&lt;bdlt::Timetable&gt;`] 
| Trait indicating `bdlt&colon;&colon;Timetable` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-04a.adoc[`UsesBslmaAllocator&lt;bdlt::Timetable&lowbar;Day&gt;`] 
| Trait indicating `bdlt&colon;&colon;Timetable&lowbar;Day` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-06ae.adoc[`UsesBslmaAllocator&lt;bsltf::WellBehavedMoveOnlyAllocTestType&gt;`] 
| Trait indicating `WellBehavedMoveOnlyAllocTestType` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0e60.adoc[`UsesBslmaAllocator&lt;bsltf::AllocArgumentType&lt;N&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `AllocArgumentType` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0580.adoc[`UsesBslmaAllocator&lt;bbldc::CalendarDateRangeDayCountAdapter&lt;CONVENTION&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` for `CalendarDateRangeDayCountAdapter`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0fb5.adoc[`UsesBslmaAllocator&lt;bdlc::CompactedArray&lt;TYPE&gt;&gt;`] 
| This template specialization for `UsesBslmaAllocator` indicates that `CompactedArray` uses `bslma&colon;&colon;Allocator`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-092.adoc[`UsesBslmaAllocator&lt;bdlc::CompactedArray&lowbar;CountedValue&lt;TYPE&gt;&gt;`] 
| This template specialization for `UsesBslmaAllocator` indicates that `CompactedArray&lowbar;CountedValue` uses `bslma&colon;&colon;Allocator`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0eb.adoc[`UsesBslmaAllocator&lt;bdlma::DefaultDeleter&lt;TYPE&gt;&gt;`] 
| This template specialization for `UsesBslmaAllocator` indicates that `DefaultDeleter` uses `bslma&colon;&colon;Allocator`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0e34.adoc[`UsesBslmaAllocator&lt;bdlcc::Deque&lt;TYPE&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `bdlcc&colon;&colon;Deque` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0d4.adoc[`UsesBslmaAllocator&lt;bslstl::Optional&lowbar;Base&lt;t&lowbar;TYPE, false&gt;&gt;`] 
| Trait specialization&colon; non&hyphen;allocator&hyphen;aware `Optional&lowbar;Base` does not use allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0ccf.adoc[`UsesBslmaAllocator&lt;bdlc::PackedIntArray&lt;TYPE&gt;&gt;`] 
| This template specialization for `UsesBslmaAllocator` indicates that `PackedIntArray` uses `bslma&colon;&colon;Allocator`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-057a.adoc[`UsesBslmaAllocator&lt;bdlc::PackedIntArrayImp&lt;STORAGE&gt;&gt;`] 
| This template specialization for `UsesBslmaAllocator` indicates that `PackedIntArrayImp` uses `bslma&colon;&colon;Allocator`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-026.adoc[`UsesBslmaAllocator&lt;bbldc::PeriodDateRangeDayCountAdapter&lt;CONVENTION&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` for `PeriodDateRangeDayCountAdapter`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-07e.adoc[`UsesBslmaAllocator&lt;SharedPtrInplaceRep&lt;ELEMENT&lowbar;TYPE&gt;&gt;`] 
| Trait specialization&colon; `SharedPtrInplaceRep` does not use BDE allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0f5.adoc[`UsesBslmaAllocator&lt;bsl::allocator&lt;TYPE&gt;&gt;`] 
| An allocator is not _itself_ an allocator&hyphen;aware type, even though it is convertible from `bsl&colon;&colon;Allocator &ast;`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-03e.adoc[`UsesBslmaAllocator&lt;bsl::optional&lt;t&lowbar;TYPE&gt;&gt;`] 
| Trait specialization&colon; `optional` uses allocators when `t&lowbar;TYPE` does&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-022f.adoc[`UsesBslmaAllocator&lt;bsl::polymorphic&lowbar;allocator&lt;TYPE&gt;&gt;`] 
| An allocator is not _itself_ an allocator&hyphen;aware type, even though it is convertible from `bsl&colon;&colon;Allocator &ast;`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0ff6.adoc[`UsesBslmaAllocator&lt;bsl::shared&lowbar;ptr&lt;ELEMENT&lowbar;TYPE&gt;&gt;`] 
| Trait specialization&colon; `shared&lowbar;ptr` does not use `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-080.adoc[`UsesBslmaAllocator&lt;bsl::stop&lowbar;callback&lt;t&lowbar;CALLBACK&gt;&gt;`] 
| Trait specialization&colon; `stop&lowbar;callback` uses allocators when `t&lowbar;CALLBACK` does&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0585.adoc[`UsesBslmaAllocator&lt;TYPE volatile&gt;`] 
| Partial specialization that associates the same trait with &apos;volatile TYPE&apos; as with unqualified `TYPE`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-059.adoc[`UsesBslmaAllocator&lt;TYPE const&gt;`] 
| Partial specialization that associates the same trait with `const TYPE` as with unqualified `TYPE`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-08eb.adoc[`UsesBslmaAllocator&lt;TYPE const volatile&gt;`] 
| Partial specialization that associates the same trait with &apos;const volatile TYPE&apos; as with unqualified `TYPE`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0f1.adoc[`UsesBslmaAllocator&lt;TYPE&&gt;`] 
| Partial specialization that prevents any lvalue reference from being considered an allocator&hyphen;aware (AA) type&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-03f.adoc[`UsesBslmaAllocator&lt;TYPE&&&gt;`] 
| Partial specialization that prevents any rvalue reference from being considered an allocator&hyphen;aware (AA) type&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0782.adoc[`UsesBslmaAllocator&lt;TYPE*&gt;`] 
| Partial specialization that rejects pointer types as allocator&hyphen;aware&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0dc.adoc[`UsesBslmaAllocator&lt;bdlf::MemFnInstance&lt;PROTOTYPE, INSTANCE&gt;&gt;`] 
| Trait indicating `MemFnInstance` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-008.adoc[`UsesBslmaAllocator&lt;bslstl::SharedPtrAllocateInplaceRep&lt;TYPE, ALLOCATOR&gt;&gt;`] 
| Trait specialization&colon; `SharedPtrAllocateInplaceRep` does not use BDE allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-077.adoc[`UsesBslmaAllocator&lt;bslstl::SharedPtrArrayAllocateInplaceRep&lt;TYPE, ALLOCATOR&gt;&gt;`] 
| Trait specialization&colon; `SharedPtrArrayAllocateInplaceRep` does not use BDE allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0ef.adoc[`UsesBslmaAllocator&lt;SharedPtrOutofplaceRep&lowbar;InitProctor&lt;TYPE, DELETER&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `SharedPtrOutofplaceRep&lowbar;InitProctor` does not use a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-08b.adoc[`UsesBslmaAllocator&lt;bsl::deque&lt;VALUE&lowbar;TYPE, ALLOCATOR&gt;&gt;`] 
| Trait indicating `deque` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-072.adoc[`UsesBslmaAllocator&lt;bsl::list&lt;VALUE, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;list` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-01f.adoc[`UsesBslmaAllocator&lt;bsl::pair&lt;T1, T2&gt;&gt;`] 
| Trait indicating `pair` uses `bslma` allocators when either element does&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-065.adoc[`UsesBslmaAllocator&lt;bsl::vector&lt;VALUE&lowbar;TYPE, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;vector` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-023.adoc[`UsesBslmaAllocator&lt;BloombergLP::bslstl::BoyerMooreHorspoolSearcher&lt;RNDACC&lowbar;ITR&lowbar;NEEDLE, HASH, EQUAL&gt;&gt;`] 
| Trait specialization&colon; `BoyerMooreHorspoolSearcher` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0ff3.adoc[`UsesBslmaAllocator&lt;BloombergLP::bslstl::BoyerMooreHorspoolSearcher&lowbar;CharImp&lt;RNDACC&lowbar;ITR&lowbar;NEEDLE, HASH, EQUAL&gt;&gt;`] 
| Trait specialization&colon; `BoyerMooreHorspoolSearcher&lowbar;CharImp` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0d3.adoc[`UsesBslmaAllocator&lt;BloombergLP::bslstl::BoyerMooreHorspoolSearcher&lowbar;GeneralImp&lt;RNDACC&lowbar;ITR&lowbar;NEEDLE, HASH, EQUAL&gt;&gt;`] 
| Trait specialization&colon; `BoyerMooreHorspoolSearcher&lowbar;GeneralImp` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-015e.adoc[`UsesBslmaAllocator&lt;bdlc::FlatHashSet&lt;KEY, HASH, EQUAL&gt;&gt;`] 
| Trait indicating `bdlc&colon;&colon;FlatHashSet` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0cc3.adoc[`UsesBslmaAllocator&lt;bsl::basic&lowbar;istringstream&lt;CHAR&lowbar;TYPE, CHAR&lowbar;TRAITS, ALLOCATOR&gt;&gt;`] 
| Trait specialization&colon; `basic&lowbar;istringstream` uses `bslma`&hyphen;style allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0051.adoc[`UsesBslmaAllocator&lt;bsl::basic&lowbar;ostringstream&lt;CHAR&lowbar;TYPE, CHAR&lowbar;TRAITS, ALLOCATOR&gt;&gt;`] 
| Trait specialization&colon; `basic&lowbar;ostringstream` uses `bslma`&hyphen;style allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0240.adoc[`UsesBslmaAllocator&lt;bsl::basic&lowbar;string&lt;CHAR&lowbar;TYPE, CHAR&lowbar;TRAITS, ALLOC&gt;&gt;`] 
| Trait indicating `basic&lowbar;string` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-08ef.adoc[`UsesBslmaAllocator&lt;bsl::basic&lowbar;stringbuf&lt;CHAR&lowbar;TYPE, CHAR&lowbar;TRAITS, ALLOCATOR&gt;&gt;`] 
| Trait specialization&colon; `basic&lowbar;stringbuf` uses `bslma`&hyphen;style allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-07d.adoc[`UsesBslmaAllocator&lt;bsl::basic&lowbar;stringstream&lt;CHAR&lowbar;TYPE, CHAR&lowbar;TRAITS, ALLOCATOR&gt;&gt;`] 
| Trait specialization&colon; `basic&lowbar;stringstream` uses `bslma`&hyphen;style allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-000.adoc[`UsesBslmaAllocator&lt;bsl::basic&lowbar;syncbuf&lt;CHAR&lowbar;TYPE, CHAR&lowbar;TRAITS, ALLOCATOR&gt;&gt;`] 
| Trait specialization&colon; `basic&lowbar;syncbuf` uses `bslma`&hyphen;style allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0bce.adoc[`UsesBslmaAllocator&lt;bsl::multiset&lt;KEY, COMPARATOR, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;multiset` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0877.adoc[`UsesBslmaAllocator&lt;bsl::set&lt;KEY, COMPARATOR, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;set` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0ed7.adoc[`UsesBslmaAllocator&lt;bdlcc::Cache&lt;KEY, VALUE, HASH, EQUAL&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `bdlcc&colon;&colon;Cache` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-078a.adoc[`UsesBslmaAllocator&lt;bdlc::FlatHashMap&lt;KEY, VALUE, HASH, EQUAL&gt;&gt;`] 
| Trait indicating `FlatHashMap` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-045.adoc[`UsesBslmaAllocator&lt;bslstl::HashTable&lt;KEY&lowbar;CONFIG, HASHER, COMPARATOR, ALLOCATOR&gt;&gt;`] 
| Trait indicating `HashTable` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-04c.adoc[`UsesBslmaAllocator&lt;bdlcc::StripedUnorderedContainerImpl&lt;KEY, VALUE, HASH, EQUAL&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `bdlcc&colon;&colon;StripedUnorderedContainerImpl` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0f2.adoc[`UsesBslmaAllocator&lt;bdlcc::StripedUnorderedMap&lt;KEY, VALUE, HASH, EQUAL&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `bdlcc&colon;&colon;StripedUnorderedMap` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0bca.adoc[`UsesBslmaAllocator&lt;bdlcc::StripedUnorderedMultiMap&lt;KEY, VALUE, HASH, EQUAL&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `bdlcc&colon;&colon;StripedUnorderedMultiMap` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-095.adoc[`UsesBslmaAllocator&lt;bsl::hash&lowbar;multiset&lt;&lowbar;Value, &lowbar;HashFcn, &lowbar;EqualKey, &lowbar;Alloc&gt;&gt;`] 
| Trait indicating `hash&lowbar;multiset` uses `bslma` allocators when `&lowbar;Alloc` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-054.adoc[`UsesBslmaAllocator&lt;bsl::hash&lowbar;set&lt;&lowbar;Value, &lowbar;HashFcn, &lowbar;EqualKey, &lowbar;Alloc&gt;&gt;`] 
| Trait indicating `hash&lowbar;set` uses `bslma` allocators when `&lowbar;Alloc` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-02f.adoc[`UsesBslmaAllocator&lt;bsl::map&lt;KEY, VALUE, COMPARATOR, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;map` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-08c.adoc[`UsesBslmaAllocator&lt;bsl::multimap&lt;KEY, VALUE, COMPARATOR, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;multimap` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-086.adoc[`UsesBslmaAllocator&lt;bsl::unordered&lowbar;multiset&lt;KEY, HASH, EQUAL, ALLOCATOR&gt;&gt;`] 
| Trait indicating `unordered&lowbar;multiset` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-010.adoc[`UsesBslmaAllocator&lt;bsl::unordered&lowbar;set&lt;KEY, HASH, EQUAL, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;unordered&lowbar;set` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-04f.adoc[`UsesBslmaAllocator&lt;bdlc::FlatHashTable&lt;KEY, ENTRY, ENTRY&lowbar;UTIL, HASH, EQUAL&gt;&gt;`] 
| Specialize `UsesBslmaAllocator` to indicate that `FlatHashTable` uses a `bslma` allocator&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0ba.adoc[`UsesBslmaAllocator&lt;bsl::hash&lowbar;map&lt;&lowbar;Key, &lowbar;Tp, &lowbar;HashFcn, &lowbar;EqualKey, &lowbar;Alloc&gt;&gt;`] 
| Trait indicating `hash&lowbar;map` uses `bslma` allocators when `&lowbar;Alloc` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0573.adoc[`UsesBslmaAllocator&lt;bsl::hash&lowbar;multimap&lt;&lowbar;Key, &lowbar;Tp, &lowbar;HashFcn, &lowbar;EqualKey, &lowbar;Alloc&gt;&gt;`] 
| Trait indicating `hash&lowbar;multimap` uses `bslma` allocators when `&lowbar;Alloc` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0c1.adoc[`UsesBslmaAllocator&lt;bsl::unordered&lowbar;map&lt;KEY, VALUE, HASH, EQUAL, ALLOCATOR&gt;&gt;`] 
| Trait indicating `unordered&lowbar;map` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0d0.adoc[`UsesBslmaAllocator&lt;bsl::unordered&lowbar;multimap&lt;KEY, VALUE, HASH, EQUAL, ALLOCATOR&gt;&gt;`] 
| Trait indicating `unordered&lowbar;multimap` uses `bslma` allocators when `ALLOCATOR` allows&period;
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/TypeTraitUsesBslmaAllocator/Metafunction.adoc[`Metafunction`] 
| Metafunction that delegates to `bslma&colon;&colon;UsesBslmaAllocator`&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-03e.adoc[`UsesBslmaAllocator&lt;bsl::optional&lt;t&lowbar;TYPE&gt;&gt;`] 
| Trait specialization&colon; `optional` uses allocators when `t&lowbar;TYPE` does&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-080.adoc[`UsesBslmaAllocator&lt;bsl::stop&lowbar;callback&lt;t&lowbar;CALLBACK&gt;&gt;`] 
| Trait specialization&colon; `stop&lowbar;callback` uses allocators when `t&lowbar;CALLBACK` does&period;
|===


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