[#BloombergLP-bslma-UsesBslmaAllocator-020] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::UsesBslmaAllocator :relfileprefix: ../../ :mrdocs: This metafunction is derived from `true_type` if `TYPE` adheres to the `bslma` allocator usage idiom and `false_type` otherwise. Note that this trait must be explicitly associated with a type in order for this metafunction to return true; simply having a constructor that implicitly converts `bslma::Allocator *` to `TYPE` is deprecated as a means of indicating that a type follows the `bslma` allocator usage idiom. == Synopsis Declared in `<bslma_usesbslmaallocator.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class TYPE> struct UsesBslmaAllocator : xref:bsl/integral_constant-02.adoc[bsl::integral_constant<bool, UsesBslmaAllocator_Imp<TYPE>::value>] ---- == Base Classes [cols="1,4"] |=== | Name| Description | `xref:bsl/integral_constant-02.adoc[bsl::integral_constant<bool, UsesBslmaAllocator_Imp<TYPE>::value>]` | Metafunction representing a compile‐time constant of the specified (template parameter) `t_TYPE` with the specified (template parameter) `t_VALUE`. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:bsl/integral_constant-02/type.adoc[`type`] | Alias for this `integral_constant` specialization. | xref:bsl/integral_constant-02/value_type.adoc[`value_type`] | |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:bsl/integral_constant-02/operator_call.adoc[`operator()`] | Return a copy of the template argument `t_VALUE`. | xref:bsl/integral_constant-02/2conversion.adoc[`operator value_type`] | |=== == Static Data Members [cols="1"] |=== | Name | xref:bsl/integral_constant-02/value.adoc[`value`] |=== == Specializations [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslma/UsesBslmaAllocator-0a8.adoc[`UsesBslmaAllocator<bsltf::AllocBitwiseMoveableTestType>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0b7.adoc[`UsesBslmaAllocator<bsltf::AllocEmplacableTestType>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0a4.adoc[`UsesBslmaAllocator<bdlc::BitArray>`] | This template specialization for `UsesBslmaAllocator` indicates that `BitArray` uses `bslma::Allocator`. | xref:BloombergLP/bslma/UsesBslmaAllocator-015d.adoc[`UsesBslmaAllocator<BloombergLP::bdlbb::Blob>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0de.adoc[`UsesBslmaAllocator<bslx::ByteOutStream>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0d5.adoc[`UsesBslmaAllocator<bdlt::Calendar>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0f0.adoc[`UsesBslmaAllocator<bdlt::CalendarCache>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-05b.adoc[`UsesBslmaAllocator<balb::Choice1>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0e3a.adoc[`UsesBslmaAllocator<balb::Choice2>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-06d.adoc[`UsesBslmaAllocator<balb::Choice3>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0057.adoc[`UsesBslmaAllocator<balb::Choice4>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-06a7.adoc[`UsesBslmaAllocator<balb::Choice5>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0873.adoc[`UsesBslmaAllocator<balb::CustomString>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0d9.adoc[`UsesBslmaAllocator<balxml::EncoderOptions>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0fb7.adoc[`UsesBslmaAllocator<baljsn::EncoderTestAddress>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0edc.adoc[`UsesBslmaAllocator<baljsn::EncoderTestChoiceWithAllCategories>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0bd.adoc[`UsesBslmaAllocator<baljsn::EncoderTestChoiceWithAllCategoriesCustomizedType>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-05f.adoc[`UsesBslmaAllocator<baljsn::EncoderTestEmployee>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-012.adoc[`UsesBslmaAllocator<baljsn::EncoderTestSequenceWithAllCategories>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-022a.adoc[`UsesBslmaAllocator<baljsn::EncoderTestSequenceWithAllCategoriesCustomizedType>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0d1.adoc[`UsesBslmaAllocator<balb::FeatureTestMessage>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0e67.adoc[`UsesBslmaAllocator<bsltf::MovableAllocTestType>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-09b.adoc[`UsesBslmaAllocator<bsltf::MoveOnlyAllocTestType>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0fbe.adoc[`UsesBslmaAllocator<bsltf::NonOptionalAllocTestType>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-07f.adoc[`UsesBslmaAllocator<bdlt::PackedCalendar>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0f4.adoc[`UsesBslmaAllocator<bdlde::QuotedPrintableEncoder>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-02e.adoc[`UsesBslmaAllocator<balb::Request>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-024c.adoc[`UsesBslmaAllocator<balb::Response>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0d2.adoc[`UsesBslmaAllocator<balb::Sequence1>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-01e.adoc[`UsesBslmaAllocator<balb::Sequence2>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-096.adoc[`UsesBslmaAllocator<balb::Sequence3>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-014.adoc[`UsesBslmaAllocator<balb::Sequence4>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0c6.adoc[`UsesBslmaAllocator<balb::Sequence5>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-05c.adoc[`UsesBslmaAllocator<balb::Sequence6>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-00d.adoc[`UsesBslmaAllocator<balb::SequenceWithAnonymity>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-091.adoc[`UsesBslmaAllocator<balb::SequenceWithAnonymityChoice>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-093.adoc[`UsesBslmaAllocator<balb::SequenceWithAnonymityChoice1>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0a6.adoc[`UsesBslmaAllocator<balb::SequenceWithAnonymityChoice2>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0228.adoc[`UsesBslmaAllocator<balb::SimpleRequest>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-025.adoc[`UsesBslmaAllocator<bslx::TestOutStream>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-06e.adoc[`UsesBslmaAllocator<bslmt::ThreadGroup>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-03d.adoc[`UsesBslmaAllocator<bdlt::Timetable>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-04a.adoc[`UsesBslmaAllocator<bdlt::Timetable_Day>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-06ae.adoc[`UsesBslmaAllocator<bsltf::WellBehavedMoveOnlyAllocTestType>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0e60.adoc[`UsesBslmaAllocator<bsltf::AllocArgumentType<N>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0580.adoc[`UsesBslmaAllocator<bbldc::CalendarDateRangeDayCountAdapter<CONVENTION>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0fb5.adoc[`UsesBslmaAllocator<bdlc::CompactedArray<TYPE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-092.adoc[`UsesBslmaAllocator<bdlc::CompactedArray_CountedValue<TYPE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0eb.adoc[`UsesBslmaAllocator<bdlma::DefaultDeleter<TYPE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0e34.adoc[`UsesBslmaAllocator<bdlcc::Deque<TYPE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0d4.adoc[`UsesBslmaAllocator<bslstl::Optional_Base<t_TYPE, false>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0ccf.adoc[`UsesBslmaAllocator<bdlc::PackedIntArray<TYPE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-057a.adoc[`UsesBslmaAllocator<bdlc::PackedIntArrayImp<STORAGE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-026.adoc[`UsesBslmaAllocator<bbldc::PeriodDateRangeDayCountAdapter<CONVENTION>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-07e.adoc[`UsesBslmaAllocator<SharedPtrInplaceRep<ELEMENT_TYPE>>`] | The class template `SharedPtrInplaceRep` appears to use allocators, but passes its allocator argument in the first position, rather than in the last position, so is not compatible with BDE APIs that use this trait. | xref:BloombergLP/bslma/UsesBslmaAllocator-0f5.adoc[`UsesBslmaAllocator<bsl::allocator<TYPE>>`] | An allocator is not _itself_ an allocator‐aware type, even though it is convertible from `bsl::Allocator *`. | xref:BloombergLP/bslma/UsesBslmaAllocator-03e.adoc[`UsesBslmaAllocator<bsl::optional<t_TYPE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-022f.adoc[`UsesBslmaAllocator<bsl::polymorphic_allocator<TYPE>>`] | An allocator is not _itself_ an allocator‐aware type, even though it is convertible from `bsl::Allocator *`. | xref:BloombergLP/bslma/UsesBslmaAllocator-0ff6.adoc[`UsesBslmaAllocator<bsl::shared_ptr<ELEMENT_TYPE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-080.adoc[`UsesBslmaAllocator<bsl::stop_callback<t_CALLBACK>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0585.adoc[`UsesBslmaAllocator<TYPE volatile>`] | Partial specialization that associates the same trait with 'volatile TYPE' as with unqualified `TYPE`. | xref:BloombergLP/bslma/UsesBslmaAllocator-059.adoc[`UsesBslmaAllocator<TYPE const>`] | Partial specialization that associates the same trait with `const TYPE` as with unqualified `TYPE`. | xref:BloombergLP/bslma/UsesBslmaAllocator-08eb.adoc[`UsesBslmaAllocator<TYPE const volatile>`] | Partial specialization that associates the same trait with 'const volatile TYPE' as with unqualified `TYPE`. | xref:BloombergLP/bslma/UsesBslmaAllocator-0f1.adoc[`UsesBslmaAllocator<TYPE&>`] | Partial specialization that prevents any lvalue reference from being considered an allocator‐aware (AA) type. | xref:BloombergLP/bslma/UsesBslmaAllocator-03f.adoc[`UsesBslmaAllocator<TYPE&&>`] | Partial specialization that prevents any rvalue reference from being considered an allocator‐aware (AA) type. | xref:BloombergLP/bslma/UsesBslmaAllocator-0782.adoc[`UsesBslmaAllocator<TYPE*>`] | Partial specialization that prevents any pointer from being considered an allocator‐aware (AA) type, including pointers that are convertible to `bslma::Allocator *`. | xref:BloombergLP/bslma/UsesBslmaAllocator-0dc.adoc[`UsesBslmaAllocator<bdlf::MemFnInstance<PROTOTYPE, INSTANCE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-008.adoc[`UsesBslmaAllocator<bslstl::SharedPtrAllocateInplaceRep<TYPE, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-077.adoc[`UsesBslmaAllocator<bslstl::SharedPtrArrayAllocateInplaceRep<TYPE, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0ef.adoc[`UsesBslmaAllocator<SharedPtrOutofplaceRep_InitProctor<TYPE, DELETER>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-08b.adoc[`UsesBslmaAllocator<bsl::deque<VALUE_TYPE, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-072.adoc[`UsesBslmaAllocator<bsl::list<VALUE, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-01f.adoc[`UsesBslmaAllocator<bsl::pair<T1, T2>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-065.adoc[`UsesBslmaAllocator<bsl::vector<VALUE_TYPE, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-023.adoc[`UsesBslmaAllocator<BloombergLP::bslstl::BoyerMooreHorspoolSearcher<RNDACC_ITR_NEEDLE, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0ff3.adoc[`UsesBslmaAllocator<BloombergLP::bslstl::BoyerMooreHorspoolSearcher_CharImp<RNDACC_ITR_NEEDLE, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0d3.adoc[`UsesBslmaAllocator<BloombergLP::bslstl::BoyerMooreHorspoolSearcher_GeneralImp<RNDACC_ITR_NEEDLE, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-015e.adoc[`UsesBslmaAllocator<bdlc::FlatHashSet<KEY, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0cc3.adoc[`UsesBslmaAllocator<bsl::basic_istringstream<CHAR_TYPE, CHAR_TRAITS, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0051.adoc[`UsesBslmaAllocator<bsl::basic_ostringstream<CHAR_TYPE, CHAR_TRAITS, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0240.adoc[`UsesBslmaAllocator<bsl::basic_string<CHAR_TYPE, CHAR_TRAITS, ALLOC>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-08ef.adoc[`UsesBslmaAllocator<bsl::basic_stringbuf<CHAR_TYPE, CHAR_TRAITS, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-07d.adoc[`UsesBslmaAllocator<bsl::basic_stringstream<CHAR_TYPE, CHAR_TRAITS, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-000.adoc[`UsesBslmaAllocator<bsl::basic_syncbuf<CHAR_TYPE, CHAR_TRAITS, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0bce.adoc[`UsesBslmaAllocator<bsl::multiset<KEY, COMPARATOR, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0877.adoc[`UsesBslmaAllocator<bsl::set<KEY, COMPARATOR, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0ed7.adoc[`UsesBslmaAllocator<bdlcc::Cache<KEY, VALUE, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-078a.adoc[`UsesBslmaAllocator<bdlc::FlatHashMap<KEY, VALUE, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-045.adoc[`UsesBslmaAllocator<bslstl::HashTable<KEY_CONFIG, HASHER, COMPARATOR, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-04c.adoc[`UsesBslmaAllocator<bdlcc::StripedUnorderedContainerImpl<KEY, VALUE, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0f2.adoc[`UsesBslmaAllocator<bdlcc::StripedUnorderedMap<KEY, VALUE, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0bca.adoc[`UsesBslmaAllocator<bdlcc::StripedUnorderedMultiMap<KEY, VALUE, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-095.adoc[`UsesBslmaAllocator<bsl::hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-054.adoc[`UsesBslmaAllocator<bsl::hash_set<_Value, _HashFcn, _EqualKey, _Alloc>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-02f.adoc[`UsesBslmaAllocator<bsl::map<KEY, VALUE, COMPARATOR, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-08c.adoc[`UsesBslmaAllocator<bsl::multimap<KEY, VALUE, COMPARATOR, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-086.adoc[`UsesBslmaAllocator<bsl::unordered_multiset<KEY, HASH, EQUAL, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-010.adoc[`UsesBslmaAllocator<bsl::unordered_set<KEY, HASH, EQUAL, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-04f.adoc[`UsesBslmaAllocator<bdlc::FlatHashTable<KEY, ENTRY, ENTRY_UTIL, HASH, EQUAL>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0ba.adoc[`UsesBslmaAllocator<bsl::hash_map<_Key, _Tp, _HashFcn, _EqualKey, _Alloc>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0573.adoc[`UsesBslmaAllocator<bsl::hash_multimap<_Key, _Tp, _HashFcn, _EqualKey, _Alloc>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0c1.adoc[`UsesBslmaAllocator<bsl::unordered_map<KEY, VALUE, HASH, EQUAL, ALLOCATOR>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-0d0.adoc[`UsesBslmaAllocator<bsl::unordered_multimap<KEY, VALUE, HASH, EQUAL, ALLOCATOR>>`] | |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslalg/TypeTraitUsesBslmaAllocator/Metafunction.adoc[`Metafunction`] | Metafunction that delegates to `bslma::UsesBslmaAllocator`. | xref:BloombergLP/bslma/UsesBslmaAllocator-03e.adoc[`UsesBslmaAllocator<bsl::optional<t_TYPE>>`] | | xref:BloombergLP/bslma/UsesBslmaAllocator-080.adoc[`UsesBslmaAllocator<bsl::stop_callback<t_CALLBACK>>`] | |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#