[#BloombergLP-bslalg] = xref:BloombergLP.adoc[BloombergLP]::bslalg :relfileprefix: ../ :mrdocs: Namespace for low‐level algorithms and type traits used by BSL containers. == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslalg/ArrayDestructionPrimitives.adoc[`ArrayDestructionPrimitives`] | Namespace for utility functions that destroy arrays of `TARGET_TYPE`. | xref:BloombergLP/bslalg/ArrayPrimitives.adoc[`ArrayPrimitives`] | Namespace for utility functions that operate on arrays of elements. | xref:BloombergLP/bslalg/ArrayPrimitives_CanBitwiseCopy.adoc[`ArrayPrimitives_CanBitwiseCopy`] | Metafunction that is `true` when `FROM_TYPE` and `TO_TYPE` are the same type (ignoring top‐level `const`) and that type is bit‐wise copyable. | xref:BloombergLP/bslalg/AutoArrayDestructor.adoc[`AutoArrayDestructor`] | This class provides a proctor that destroys a guarded range of array elements. | xref:BloombergLP/bslalg/AutoArrayMoveDestructor.adoc[`AutoArrayMoveDestructor`] | This `class` provides a specialized proctor that bit‐wise moves and destroys array segments upon destruction. | xref:BloombergLP/bslalg/AutoScalarDestructor.adoc[`AutoScalarDestructor`] | Proctor that destroys a guarded object unless released. | xref:BloombergLP/bslalg/BidirectionalLink.adoc[`BidirectionalLink`] | A node in a doubly‐linked (bidirectional) list. | xref:BloombergLP/bslalg/BidirectionalLinkListUtil.adoc[`BidirectionalLinkListUtil`] | Namespace for utility functions that manipulate bidirectional linked lists. | xref:BloombergLP/bslalg/BidirectionalNode.adoc[`BidirectionalNode`] | POD‐like node holding a `VALUE` in a doubly‐linked list. | xref:BloombergLP/bslalg/ConstructorProxy.adoc[`ConstructorProxy`] | Proxy for constructing and destroying an optionally allocator‐aware object. | xref:BloombergLP/bslalg/ConstructorProxy_AllocatorType-08.adoc[`ConstructorProxy_AllocatorType`] | Metafunction yielding the allocator types used with a proxied `TYPE`. | xref:BloombergLP/bslalg/ConstructorProxy_PolymorphicAllocator.adoc[`ConstructorProxy_PolymorphicAllocator`] | Wrapper around `bsl::polymorphic_allocator` that can tolerate being constructed with a null pointer. | xref:BloombergLP/bslalg/ContainerBase.adoc[`ContainerBase`] | Allocator proxy base class for STL‐style containers. | xref:BloombergLP/bslalg/ContainerBase_EmptyBase.adoc[`ContainerBase_EmptyBase`] | Empty base class for `ContainerBase` with a stateless allocator. | xref:BloombergLP/bslalg/ContainerBase_NonEmptyBase.adoc[`ContainerBase_NonEmptyBase`] | Base class for `ContainerBase` that stores a non‐empty allocator. | xref:BloombergLP/bslalg/DequeImpUtil.adoc[`DequeImpUtil`] | This `struct`, parameterized by the `VALUE_TYPE` and a `BLOCK_LENGTH`, provides the various parameters of the deque implementation. | xref:BloombergLP/bslalg/DequeIterator-0d.adoc[`DequeIterator`] | Primitive random‐access iterator over a block‐based deque. | xref:BloombergLP/bslalg/DequePrimitives-01.adoc[`DequePrimitives`] | Namespace for primitive algorithms that operate on deques. | xref:BloombergLP/bslalg/DequePrimitives_DequeElementGuard.adoc[`DequePrimitives_DequeElementGuard`] | Proctor that destroys a guarded range of deque elements on destruction. | xref:BloombergLP/bslalg/DequePrimitives_DequeEndpointProctor.adoc[`DequePrimitives_DequeEndpointProctor`] | Proctor that restores a deque endpoint iterator on destruction. | xref:BloombergLP/bslalg/DequePrimitives_DequeMoveGuard.adoc[`DequePrimitives_DequeMoveGuard`] | Guard that reverses a deque move on destruction unless released. | xref:BloombergLP/bslalg/DequePrimitives_ExternalDequeElementGuard.adoc[`DequePrimitives_ExternalDequeElementGuard`] | Proctor that destroys an externally updated deque element range. | xref:BloombergLP/bslalg/FunctorAdapter-09.adoc[`FunctorAdapter`] | This class provides a metafunction that aliases a callable object to a functor type. | xref:BloombergLP/bslalg/FunctorAdapter_FunctionPointer.adoc[`FunctorAdapter_FunctionPointer`] | This class provides a functor that delegates to a function pointer. | xref:BloombergLP/bslalg/HasStlIterators-0e.adoc[`HasStlIterators`] | This class detects if the specified class `TYPE` has STL‐like iterators. | xref:BloombergLP/bslalg/HasTrait.adoc[`HasTrait`] | This meta‐function evaluates to `bsl::true_type` if the (template parameter) `TYPE` has the (template parameter) `TRAIT`, and to `bsl::false_type` otherwise. | xref:BloombergLP/bslalg/HashTableAnchor.adoc[`HashTableAnchor`] | Value‐semantic attribute class characterizing the key data of a hash table. | xref:BloombergLP/bslalg/HashTableBucket.adoc[`HashTableBucket`] | POD that refers to the first and last nodes of a hash‐table bucket. | xref:BloombergLP/bslalg/HashTableImpUtil.adoc[`HashTableImpUtil`] | This `struct` provides a namespace for a suite of utility functions for creating and manipulating a hash table. | xref:BloombergLP/bslalg/HashTableImpUtil_ExtractKeyResult.adoc[`HashTableImpUtil_ExtractKeyResult`] | Metafunction that deduces the return type of `KEY_CONFIG::extractKey`. | xref:BloombergLP/bslalg/HashUtil.adoc[`HashUtil`] | This `struct` provides a namespace for hash functions. | xref:BloombergLP/bslalg/NothrowMovableUtil.adoc[`NothrowMovableUtil`] | Namesapace for `NothrowMovableWrapper` traits and utilities. | xref:BloombergLP/bslalg/NothrowMovableUtil_Traits-04.adoc[`NothrowMovableUtil_Traits`] | Metafunction providing traits for `NothrowMovableWrapper` types. | xref:BloombergLP/bslalg/NothrowMovableWrapper-02.adoc[`NothrowMovableWrapper`] | Wrapper asserting a noexcept move constructor for a value of `TYPE`. | xref:BloombergLP/bslalg/NumericFormatterUtil.adoc[`NumericFormatterUtil`] | Namespace `struct` for free functions supporting `to_chars`. | xref:BloombergLP/bslalg/RangeCompare.adoc[`RangeCompare`] | Utility for equality and lexicographical comparison of iterator ranges. | xref:BloombergLP/bslalg/RbTreeAnchor.adoc[`RbTreeAnchor`] | Hold the first‐node, root‐node, and node‐count of a binary search tree. | xref:BloombergLP/bslalg/RbTreeNode.adoc[`RbTreeNode`] | A node in a red‐black binary search tree. | xref:BloombergLP/bslalg/RbTreeUtil.adoc[`RbTreeUtil`] | This `struct` provides a namespace for a suite of utility functions that operate on elements of type `RbTreeNode`. | xref:BloombergLP/bslalg/RbTreeUtilTreeProctor.adoc[`RbTreeUtilTreeProctor`] | This class implements a proctor that, unless `release` is called, invokes the parameterized `DELETER` on each node in the tree supplied at construction. | xref:BloombergLP/bslalg/RbTreeUtil_Validator.adoc[`RbTreeUtil_Validator`] | This `struct` provides a namespace for auxiliary functions used to validate a red‐black binary search tree. | xref:BloombergLP/bslalg/ScalarPrimitives.adoc[`ScalarPrimitives`] | Namespace for utility functions that operate on scalar `TARGET_TYPE` elements. | xref:BloombergLP/bslalg/SelectTrait.adoc[`SelectTrait`] | Meta‐function that selects the first matching trait for a type. | xref:BloombergLP/bslalg/SwapUtil.adoc[`SwapUtil`] | This class provides a namespace for the `swap` utility method. | xref:BloombergLP/bslalg/SynthThreeWayUtil.adoc[`SynthThreeWayUtil`] | "Exposition‐only" part of `bslstl_compare.h` | xref:BloombergLP/bslalg/TypeTraitBitwiseCopyable.adoc[`TypeTraitBitwiseCopyable`] | Objects of a type with this trait can be copied using `memcpy`. | xref:BloombergLP/bslalg/TypeTraitBitwiseEqualityComparable.adoc[`TypeTraitBitwiseEqualityComparable`] | Trait for types whose equality can be tested with `memcmp`. | xref:BloombergLP/bslalg/TypeTraitBitwiseMoveable.adoc[`TypeTraitBitwiseMoveable`] | Objects of a type with this trait can be "moved" from one memory location to another using `memmove` or `memcpy`. | xref:BloombergLP/bslalg/TypeTraitHasPointerSemantics.adoc[`TypeTraitHasPointerSemantics`] | Trait for types that behave as if they were fundamental pointers. | xref:BloombergLP/bslalg/TypeTraitHasStlIterators.adoc[`TypeTraitHasStlIterators`] | A `TYPE` with this trait defines (at minimum) the nested types `iterator` and `const_iterator` and the functions `begin()` and `end()` having the standard STL semantics. | xref:BloombergLP/bslalg/TypeTraitHasTrivialDefaultConstructor.adoc[`TypeTraitHasTrivialDefaultConstructor`] | Trait for types that have a trivial default constructor. | xref:BloombergLP/bslalg/TypeTraitNil.adoc[`TypeTraitNil`] | Nil trait ‐‐ every type has this trait. | xref:BloombergLP/bslalg/TypeTraitPair.adoc[`TypeTraitPair`] | A `TYPE` with this trait has two data members, `first` and `second` of types `T::first_type` and `T::second_type`, respectively. | xref:BloombergLP/bslalg/TypeTraitUsesBslmaAllocator.adoc[`TypeTraitUsesBslmaAllocator`] | A `TYPE` with this trait uses an allocator derived from `bslma::Allocator` to supply memory. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslalg/ScalarDestructionPrimitives.adoc[`ScalarDestructionPrimitives`] | This alias is defined for backward compatibility. |=== == Enums [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslalg/_04enum.adoc[`Unnamed enum`] | Trait‐tag constants used to select `DequePrimitives` overloads. |=== == Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslalg/swap.adoc[`swap`] | Efficiently exchange the values of two `HashTableAnchor` objects. | xref:BloombergLP/bslalg/operator_eq-0b.adoc[`operator==`] | Equality operators | xref:BloombergLP/bslalg/operator_not_eq-03.adoc[`operator!=`] | Inequality operators | xref:BloombergLP/bslalg/operator_3way-04.adoc[`operator<=>`] | Three‐way comparison operators |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#