[#BloombergLP-bslma] = xref:BloombergLP.adoc[BloombergLP]::bslma :relfileprefix: ../ :mrdocs: Package namespace for memory‐allocation mechanisms. == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslma/AAModel.adoc[`AAModel`] | Metafunction that yields the AA model preferred by `TYPE`. | xref:BloombergLP/bslma/AAModelBsl.adoc[`AAModelBsl`] | Model tag for bsl‐AA types. | xref:BloombergLP/bslma/AAModelIsSupported-06.adoc[`AAModelIsSupported`] | Metafunction that is `true_type` if `TYPE` supports AA model `MODEL`. | xref:BloombergLP/bslma/AAModelLegacy.adoc[`AAModelLegacy`] | Model tag for legacy‐AA types. | xref:BloombergLP/bslma/AAModelNone.adoc[`AAModelNone`] | Model tag for non‐AA types. | xref:BloombergLP/bslma/AAModelPmr.adoc[`AAModelPmr`] | Model tag for pmr‐AA types. | xref:BloombergLP/bslma/AAModelStl.adoc[`AAModelStl`] | Model tag for stl‐AA types. | xref:BloombergLP/bslma/AATypeUtil.adoc[`AATypeUtil`] | Namespace for utility functions on allocator‐aware types | xref:BloombergLP/bslma/Allocator.adoc[`Allocator`] | Pure abstract protocol for clients and suppliers of raw memory. | xref:BloombergLP/bslma/AllocatorTraits_CallMaxSize-07.adoc[`AllocatorTraits_CallMaxSize`] | Fallback `max_size` implementation when the allocator does not provide its own `max_size` member function. | xref:BloombergLP/bslma/AllocatorTraits_ConstPointerType-04.adoc[`AllocatorTraits_ConstPointerType`] | Metafunction that yields the const pointer type for the specified (template parameter) `T`. | xref:BloombergLP/bslma/AllocatorTraits_ConstVoidPointerType-09.adoc[`AllocatorTraits_ConstVoidPointerType`] | Metafunction that yields the const void pointer type for allocator `T`. | xref:BloombergLP/bslma/AllocatorTraits_DifferenceType-0d.adoc[`AllocatorTraits_DifferenceType`] | Metafunction that yields the difference type for allocator `T`. | xref:BloombergLP/bslma/AllocatorTraits_HasConstructMethod.adoc[`AllocatorTraits_HasConstructMethod`] | Metafunction detecting whether `T` provides a matching `construct` method. | xref:BloombergLP/bslma/AllocatorTraits_HasDestroyMethod.adoc[`AllocatorTraits_HasDestroyMethod`] | Metafunction that detects whether `T` provides a `destroy` method with the specified signature. | xref:BloombergLP/bslma/AllocatorTraits_HasIsAlwaysEqual.adoc[`AllocatorTraits_HasIsAlwaysEqual`] | Metafunction detecting whether `ALLOC` defines nested `is_always_equal`. | xref:BloombergLP/bslma/AllocatorTraits_HasPropOnCopyAssign.adoc[`AllocatorTraits_HasPropOnCopyAssign`] | Metafunction detecting nested `propagate_on_container_copy_assignment`. | xref:BloombergLP/bslma/AllocatorTraits_HasPropOnMoveAssign.adoc[`AllocatorTraits_HasPropOnMoveAssign`] | Metafunction detecting nested `propagate_on_container_move_assignment`. | xref:BloombergLP/bslma/AllocatorTraits_HasPropOnSwap.adoc[`AllocatorTraits_HasPropOnSwap`] | Metafunction detecting nested `propagate_on_container_swap`. | xref:BloombergLP/bslma/AllocatorTraits_HasSelectOnCopyMethod.adoc[`AllocatorTraits_HasSelectOnCopyMethod`] | Metafunction detecting `select_on_container_copy_construction`. | xref:BloombergLP/bslma/AllocatorTraits_IsAlwaysEqual-0e.adoc[`AllocatorTraits_IsAlwaysEqual`] | Use the allocator's nested `is_always_equal` when defined. | xref:BloombergLP/bslma/AllocatorTraits_PointerType-0e.adoc[`AllocatorTraits_PointerType`] | Metafunction that yields the pointer type for allocator `T`. | xref:BloombergLP/bslma/AllocatorTraits_PropOnCopyAssign-0a.adoc[`AllocatorTraits_PropOnCopyAssign`] | Default copy‐assignment propagation trait to `false_type` when undefined. | xref:BloombergLP/bslma/AllocatorTraits_PropOnMoveAssign-05.adoc[`AllocatorTraits_PropOnMoveAssign`] | Default move‐assignment propagation trait to `false_type` when undefined. | xref:BloombergLP/bslma/AllocatorTraits_PropOnSwap-07.adoc[`AllocatorTraits_PropOnSwap`] | Default `propagate_on_container_swap` to `false_type` when undefined. | xref:BloombergLP/bslma/AllocatorTraits_RebindAlloc-0a.adoc[`AllocatorTraits_RebindAlloc`] | Metafunction that rebinds an allocator type to a different value type. | xref:BloombergLP/bslma/AllocatorTraits_RebindFront-0d.adoc[`AllocatorTraits_RebindFront`] | Primary template with no `type` unless `T` is a class template. | xref:BloombergLP/bslma/AllocatorTraits_SizeType-0c.adoc[`AllocatorTraits_SizeType`] | Metafunction that yields the size type for the specified (template parameter) `T`. | xref:BloombergLP/bslma/AllocatorTraits_VoidPointerType-08c.adoc[`AllocatorTraits_VoidPointerType`] | Metafunction that yields the void pointer type for the specified (template parameter) `T`. | xref:BloombergLP/bslma/AllocatorUtil.adoc[`AllocatorUtil`] | Namespace for utility functions on allocators | xref:BloombergLP/bslma/AllocatorUtil_Traits-02.adoc[`AllocatorUtil_Traits`] | Traits extending `allocator_traits` to pointer‐to‐memory‐resource types. | xref:BloombergLP/bslma/AutoDeallocator.adoc[`AutoDeallocator`] | This class implements a range proctor that automatically deallocates managed memory blocks. | xref:BloombergLP/bslma/AutoDestructor.adoc[`AutoDestructor`] | This class implements a range proctor that destroys managed objects. | xref:BloombergLP/bslma/AutoRawDeleter.adoc[`AutoRawDeleter`] | Range proctor that deletes a contiguous sequence of objects on destruction. | xref:BloombergLP/bslma/BslAllocator_Voidish.adoc[`BslAllocator_Voidish`] | Object type that will be placeholder for 'void' | xref:BloombergLP/bslma/BufferAllocator.adoc[`BufferAllocator`] | Concrete buffer allocator that allocates from a user‐supplied fixed‐size buffer. | xref:BloombergLP/bslma/ConstructionUtil.adoc[`ConstructionUtil`] | This `struct` provides a namespace for utility functions that construct elements of (a template parameter) `TARGET_TYPE`. | xref:BloombergLP/bslma/ConstructionUtil_AllocAdaptorUtil-06.adoc[`ConstructionUtil_AllocAdaptorUtil`] | Component‐private utility for adapting allocator objects (see specializations). | xref:BloombergLP/bslma/ConstructionUtil_ConstructionTrait.adoc[`ConstructionUtil_ConstructionTrait`] | Metafunction yielding one of the following three `value` constants: | xref:BloombergLP/bslma/ConstructionUtil_IsAllocatorPtr-06.adoc[`ConstructionUtil_IsAllocatorPtr`] | Metafunction that inherits from `true_type` if the `ALLOC` type is a pointer to `bslma::Allocator` or a class derived from it and `false_type` otherwise. | xref:BloombergLP/bslma/DeallocateBytesProctor.adoc[`DeallocateBytesProctor`] | Proctor that deallocates a managed memory block upon destruction. | xref:BloombergLP/bslma/DeallocateBytesProctor_PtrType-0e7.adoc[`DeallocateBytesProctor_PtrType`] | Metafunction yielding the void‐pointer type used by `DeallocateBytesProctor`. | xref:BloombergLP/bslma/DeallocateObjectProctor.adoc[`DeallocateObjectProctor`] | Proctor that automatically deallocates a managed object on destruction. | xref:BloombergLP/bslma/DeallocateObjectProctor_PtrType-0d.adoc[`DeallocateObjectProctor_PtrType`] | Metafunction yielding the pointer type used by `DeallocateObjectProctor`. | xref:BloombergLP/bslma/DeallocatorGuard.adoc[`DeallocatorGuard`] | Guard that unconditionally deallocates a managed memory block on destruction. | xref:BloombergLP/bslma/DeallocatorProctor.adoc[`DeallocatorProctor`] | Proctor that conditionally manages and deallocates a block of memory. | xref:BloombergLP/bslma/Default.adoc[`Default`] | Provide access to the process‐wide default and global allocators. | xref:BloombergLP/bslma/DefaultAllocatorGuard.adoc[`DefaultAllocatorGuard`] | This class provides a scoped guard that temporarily replaces the process‐wide default allocator. | xref:BloombergLP/bslma/Default_NewDeleteSetter.adoc[`Default_NewDeleteSetter`] | Set the initial C++17 default resource to `NewDeleteAllocator`. | xref:BloombergLP/bslma/DeleteObjectProctor.adoc[`DeleteObjectProctor`] | Proctor that conditionally deletes a managed object on destruction. | xref:BloombergLP/bslma/DeleteObjectProctor_PtrType-0e.adoc[`DeleteObjectProctor_PtrType`] | Metafunction yielding the pointer type used by `DeleteObjectProctor`. | xref:BloombergLP/bslma/DeleterHelper.adoc[`DeleterHelper`] | This struct provides a namespace for helper functions used for deleting objects in various pools and allocators. | xref:BloombergLP/bslma/DeleterHelper_Helper-0f.adoc[`DeleterHelper_Helper`] | Helper template for `DeleterHelper` dispatch by polymorphism. | xref:BloombergLP/bslma/DestructionUtil.adoc[`DestructionUtil`] | Utility functions that destroy elements of parameterized type `TYPE`. | xref:BloombergLP/bslma/DestructorGuard.adoc[`DestructorGuard`] | This class implements a guard that unconditionally destroys a managed object upon destruction by invoking the (managed) object's destructor. | xref:BloombergLP/bslma/DestructorProctor.adoc[`DestructorProctor`] | Proctor that conditionally manages and destroys an object. | xref:BloombergLP/bslma/ExceptionGuard.adoc[`ExceptionGuard`] | Guard that verifies an object is unchanged if an exception is thrown. | xref:BloombergLP/bslma/HasAllocatorType-00.adoc[`HasAllocatorType`] | Metafunction that yields whether `TYPE` has a nested C++11 `allocator_type`. | xref:BloombergLP/bslma/InfrequentDeleteBlockList.adoc[`InfrequentDeleteBlockList`] | Memory manager that allocates and manages a sequence of memory blocks. | xref:BloombergLP/bslma/IsStdAllocator-07.adoc[`IsStdAllocator`] | Metafunction that yields whether `TYPE` meets C++11 allocator requirements. | xref:BloombergLP/bslma/IsStdAllocator_SizeType-04.adoc[`IsStdAllocator_SizeType`] | Component‐private metafunction that yields the size type for `TYPE`. | xref:BloombergLP/bslma/MallocFreeAllocator.adoc[`MallocFreeAllocator`] | This class provides direct access to the system‐supplied (native) global `std::malloc` and `std::free`. | xref:BloombergLP/bslma/ManagedAllocator.adoc[`ManagedAllocator`] | Protocol for allocators that support releasing all allocated memory. | xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[`ManagedPtr`] | Smart pointer with sole ownership of a managed object and a possibly distinct target. | xref:BloombergLP/bslma/ManagedPtrDeleter.adoc[`ManagedPtrDeleter`] | In‐core value‐semantic class that stores a bound delete function. | xref:BloombergLP/bslma/ManagedPtrNilDeleter.adoc[`ManagedPtrNilDeleter`] | Utility providing a no‐op deleter for managed pointers to stack objects. | xref:BloombergLP/bslma/ManagedPtrUtil.adoc[`ManagedPtrUtil`] | Utility providing a no‐op deleter for managed pointers to stack objects. | xref:BloombergLP/bslma/ManagedPtr_DefaultDeleter.adoc[`ManagedPtr_DefaultDeleter`] | This `struct` provides a function‐like managed pointer deleter that invokes `delete` with the passed pointer. | xref:BloombergLP/bslma/ManagedPtr_FactoryDeleter.adoc[`ManagedPtr_FactoryDeleter`] | This utility provides a general deleter for factories that provide a `deleteObject` operation (e.g., `bslma::Allocator`, `bdlma::Pool`). | xref:BloombergLP/bslma/ManagedPtr_FactoryDeleterType.adoc[`ManagedPtr_FactoryDeleterType`] | Metafunction selecting the preferred factory deleter for `ManagedPtr`. | xref:BloombergLP/bslma/ManagedPtr_Members.adoc[`ManagedPtr_Members`] | Type‐agnostic container for the internal state of a managed pointer. | xref:BloombergLP/bslma/ManagedPtr_PairProxy.adoc[`ManagedPtr_PairProxy`] | This class is a simple aggregate that may be used to construct a `bsl::pair` object. | xref:BloombergLP/bslma/ManagedPtr_Ref.adoc[`ManagedPtr_Ref`] | Temporary reference enabling construction from temporary `ManagedPtr`s. | xref:BloombergLP/bslma/ManagedPtr_TraitConstraint.adoc[`ManagedPtr_TraitConstraint`] | This `struct` is an empty type that exists solely to enable constructor access to be constrained by type trait. | xref:BloombergLP/bslma/MemoryResourceImpSupport.adoc[`MemoryResourceImpSupport`] | Namespace for functions that support implementing a memory resource. | xref:BloombergLP/bslma/MemoryResourceImpSupport_AlignedData.adoc[`MemoryResourceImpSupport_AlignedData`] | Component‐private maximally aligned struct holding an unsigned 64‐bit integer. | xref:BloombergLP/bslma/NewDeleteAllocator.adoc[`NewDeleteAllocator`] | Concrete allocator adapting global `operator new` and `operator delete`. | xref:BloombergLP/bslma/PointerUtil.adoc[`PointerUtil`] | This `struct` provides a namespace for utility functions that perform low‐level pointer manipulations. | xref:BloombergLP/bslma/RawDeleterGuard.adoc[`RawDeleterGuard`] | Guard that unconditionally deletes a managed object on destruction. | xref:BloombergLP/bslma/RawDeleterProctor.adoc[`RawDeleterProctor`] | Proctor that conditionally manages and deletes an object. | xref:BloombergLP/bslma/SequentialAllocator.adoc[`SequentialAllocator`] | This class implements the `ManagedAllocator` protocol to provide a fast allocator of arbitrarily‐sized blocks of memory. | xref:BloombergLP/bslma/SequentialPool.adoc[`SequentialPool`] | This class implements a memory pool that dispenses arbitrarily‐sized blocks of memory. | xref:BloombergLP/bslma/SharedPtrInplaceRep.adoc[`SharedPtrInplaceRep`] | In‐place `SharedPtrRep` implementation for a managed object of `TYPE`. | xref:BloombergLP/bslma/SharedPtrOutofplaceRep.adoc[`SharedPtrOutofplaceRep`] | Out‐of‐place concrete implementation of the `SharedPtrRep` protocol. | xref:BloombergLP/bslma/SharedPtrOutofplaceRep_DeleterDiscriminator.adoc[`SharedPtrOutofplaceRep_DeleterDiscriminator`] | Metafunction that classifies a deleter's kind and C++ type. | xref:BloombergLP/bslma/SharedPtrOutofplaceRep_DeleterHelper.adoc[`SharedPtrOutofplaceRep_DeleterHelper`] | This `struct` provides utility functions to apply a deleter to a shared object referred to by `SharedPtrOutofplaceRep`. | xref:BloombergLP/bslma/SharedPtrOutofplaceRep_DeleterType.adoc[`SharedPtrOutofplaceRep_DeleterType`] | This `struct` enumerates four kinds of deleters, the first two are factory deleters, and the last two are function‐like deleters. | xref:BloombergLP/bslma/SharedPtrOutofplaceRep_InitProctor.adoc[`SharedPtrOutofplaceRep_InitProctor`] | Proctor that deletes a pointer if out‐of‐place rep construction fails. | xref:BloombergLP/bslma/SharedPtrRep.adoc[`SharedPtrRep`] | Partially implemented shared pointer representation protocol. | xref:BloombergLP/bslma/StdTestAllocator.adoc[`StdTestAllocator`] | An STL‐compatible test allocator that forwards to a `bslma::TestAllocator`. | xref:BloombergLP/bslma/SuppressesImplicitConvertibilityWarnings.adoc[`SuppressesImplicitConvertibilityWarnings`] | Metafunction that reports whether convertibility deprecation warnings are suppressed for `t_TYPE`. | xref:BloombergLP/bslma/TestAllocator.adoc[`TestAllocator`] | Concrete test allocator that tracks memory usage for testing. | xref:BloombergLP/bslma/TestAllocatorException.adoc[`TestAllocatorException`] | This class defines an exception object for memory allocation operations. Objects of this class contain information about an allocation request. | xref:BloombergLP/bslma/TestAllocatorMonitor.adoc[`TestAllocatorMonitor`] | Mechanism that reports changes in a `TestAllocator`'s statistics. | xref:BloombergLP/bslma/TestAllocatorStashedStatistics.adoc[`TestAllocatorStashedStatistics`] | Saved `TestAllocator` statistics for later restoration. | xref:BloombergLP/bslma/TestAllocatorStatisticsGuard.adoc[`TestAllocatorStatisticsGuard`] | This mechanism provides scoped, localized statistics for a `TestAllocator`. | xref:BloombergLP/bslma/TestAllocator_BlockHeader.adoc[`TestAllocator_BlockHeader`] | Private header for a block of allocated memory managed by `TestAllocator`. | xref:BloombergLP/bslma/TestAllocator_Proxy.adoc[`TestAllocator_Proxy`] | Proxy for a test allocator used by exception‐test macros. | xref:BloombergLP/bslma/TestAllocator_ProxyBase.adoc[`TestAllocator_ProxyBase`] | Common base class for `TestAllocator_Proxy`. | xref:BloombergLP/bslma/UsesBslmaAllocator-020.adoc[`UsesBslmaAllocator`] | Metafunction that is `true_type` if `TYPE` uses the `bslma` allocator idiom. | xref:BloombergLP/bslma/UsesBslmaAllocator_DeprecatedIf-0f.adoc[`UsesBslmaAllocator_DeprecatedIf`] | Empty helper whose `check` may emit a deprecation warning. | xref:BloombergLP/bslma/UsesBslmaAllocator_Sniff-0d.adoc[`UsesBslmaAllocator_Sniff`] | Metafunction that sniffs whether `TYPE` is convertible from `bslma::Allocator *`. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslma/AllocatorAdaptor.adoc[`AllocatorAdaptor`] | Polymorphic wrapper around an STL‐style allocator. |=== == Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslma/TestAllocator_getProxy.adoc[`TestAllocator_getProxy`] | Return, by value, a test allocator proxy for the specified parameterized `allocator`. | xref:BloombergLP/bslma/swap.adoc[`swap`] | Efficiently exchange the values of the specified `a` and `b` objects. This function provides the no‐throw exception‐safety guarantee. | xref:BloombergLP/bslma/operator_lshift.adoc[`operator<<`] | Write the state of `ta` to `stream` and return `stream`. | xref:BloombergLP/bslma/operator_eq-03.adoc[`operator==`] | Equality operators | xref:BloombergLP/bslma/operator_not_eq-09.adoc[`operator!=`] | Inequality operators |=== == Variables [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslma/IsStdAllocator_v.adoc[`IsStdAllocator_v`] | This template variable represents the result value of the `bslma::IsStdAllocator` meta‐function. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#