Quick Links:

bal | bbl | bdl | bsl

Components

Package bslalg
[Package Group bsl]

Provide algorithms and traits used by the BDE STL implementation. More...

Components

 Component bslalg_arraydestructionprimitives
 

Provide primitive algorithms that destroy arrays.

 Component bslalg_arrayprimitives
 

Provide primitive algorithms that operate on arrays.

 Component bslalg_arrayprimitives_cpp03: PRIVATE
 

Provide C++03 implementation for bslalg_arrayprimitives.h.

 Component bslalg_autoarraydestructor
 

Provide a proctor for destroying arrays.

 Component bslalg_autoarraymovedestructor
 

Provide a proctor for destroying arrays.

 Component bslalg_autoscalardestructor
 

Provide a proctor for destroying an object.

 Component bslalg_bidirectionallink
 

Provide a basic link type for building doubly-linked lists.

 Component bslalg_bidirectionallinklistutil
 

Provide utilities to maintain bidirectional list data structures.

 Component bslalg_bidirectionalnode
 

Provide a node holding a value in a doubly-linked list.

 Component bslalg_constructorproxy
 

Provide a proxy for constructing and destroying objects.

 Component bslalg_containerbase
 

Provide a wrapper for STL allocators, respecting bslma semantics.

 Component bslalg_dequeimputil
 

Provide basic parameters and primitive data structures for deques.

 Component bslalg_dequeiterator
 

Provide a primitive iterator over deque data structures.

 Component bslalg_dequeprimitives
 

Provide primitive algorithms that operate on deques.

 Component bslalg_dequeprimitives_cpp03: PRIVATE
 

Provide C++03 implementation for bslalg_dequeprimitives.h.

 Component bslalg_functoradapter
 

Provide an utility that adapts callable objects to functors.

 Component bslalg_hashtableanchor
 

Provide a type holding the constituent parts of a hash table.

 Component bslalg_hashtablebucket
 

Provide a bucket representation for hash table data structures.

 Component bslalg_hashtableimputil
 

Provide algorithms for implementing a hash table.

 Component bslalg_hashutil
 

Provide a utility of hash functions.

 Component bslalg_hasstliterators
 

Provide a tag type used to detect STL-like iterators traits.

 Component bslalg_hastrait: DEPRECATED
 

Provide a meta-function to detect if a type has a given trait.

 Component bslalg_nothrowmovableutil
 

Provide a wrapper that asserts a noexcept move constructor.

 Component bslalg_nothrowmovablewrapper
 

Provide a wrapper that asserts a noexcept move constructor.

 Component bslalg_numericformatterutil
 

Provide a utility for formatting numbers into strings.

 Component bslalg_rangecompare
 

Provide algorithms to compare iterator-ranges of elements.

 Component bslalg_rbtreeanchor
 

Encapsulate root, first, and last nodes of a tree with a count.

 Component bslalg_rbtreenode
 

Provide a base class for a red-black binary tree node.

 Component bslalg_rbtreeutil
 

Provide a suite of primitive algorithms on red-black trees.

 Component bslalg_scalardestructionprimitives: DEPRECATED
 

Provide primitive algorithms that destroy scalars.

 Component bslalg_scalarprimitives
 

Provide primitive algorithms that operate on single elements.

 Component bslalg_selecttrait: DEPRECATED
 

Provide a meta-function to select a suitable trait on a type.

 Component bslalg_swaputil
 

Provide a simple to use swap algorithm.

 Component bslalg_typetraitbitwisecopyable: DEPRECATED
 

Provide a trait to mark classes as bit-wise copyable.

 Component bslalg_typetraitbitwiseequalitycomparable: DEPRECATED
 

Provide a trait to mark classes as bit-wise eq.-comparable.

 Component bslalg_typetraitbitwisemoveable: DEPRECATED
 

Provide a trait to mark classes as bit-wise moveable.

 Component bslalg_typetraithaspointersemantics: DEPRECATED
 

Provide a trait to mark classes as having pointer semantics.

 Component bslalg_typetraithasstliterators: DEPRECATED
 

Provide a trait to mark classes as having STL-like iterators.

 Component bslalg_typetraithastrivialdefaultconstructor: DEPRECATED
 

Provide a trait to mark classes as having a trivial default ctor.

 Component bslalg_typetraitnil: DEPRECATED
 

Provide a trait to mark classes as having no other traits.

 Component bslalg_typetraitpair: DEPRECATED
 

Provide a trait to mark classes as similar to std::pair.

 Component bslalg_typetraits: DEPRECATED
 

Provide compile-time traits that can be associated with types.

 Component bslalg_typetraitusesbslmaallocator: DEPRECATED
 

Provide a trait to mark types that use bslma allocators.


Detailed Description

Outline
Purpose:
Provide algorithms and traits used by the BDE STL implementation.
MNEMONIC: Basic Standard Library ALgorithms (bslalg):
Description:
This package provides facilities for implementing higher-level components (in particular, the standard library containers). The facilities fall into three broad classes:
  • Utilities that provide efficient implementations of primitive operations on generic data types (e.g., construction, copy-construction), optimized based on the exposed traits of the type (e.g., bitwise-copyable, uses-allocator).
  • Primitive data types and fundamental algorithms that form the basis of standard library containers (e.g., linked lists, hash tables, Red/Black trees and deques).
  • Legacy traits types used to tag user-defined (client) types according to properties such as whether they use a memory allocator to supply memory resources, have a trivial default constructor, are POD types, etc. These traits types have been superseded by the traits in the bslmf package, and are implemented in terms of bslmf.
Hierarchical Synopsis:
The bslalg package currently has 43 components having 9 levels of physical dependency. The list below shows the hierarchical ordering of the components. The order of components within each level is not architecturally significant, just alphabetical.
  9. bslalg_dequeprimitives
     bslalg_rbtreeutil

  8. bslalg_arrayprimitives

  7. bslalg_autoarraymovedestructor
     bslalg_hashtableimputil

  6. bslalg_autoarraydestructor
     bslalg_hashtableanchor

  5. bslalg_arraydestructionprimitives
     bslalg_bidirectionalnode
     bslalg_constructorproxy
     bslalg_dequeiterator

  4. bslalg_hashtablebucket
     bslalg_rangecompare
     bslalg_scalarprimitives
     bslalg_selecttrait                                  !DEPRECATED!
     bslalg_typetraits                                   !DEPRECATED!

  3. bslalg_autoscalardestructor
     bslalg_bidirectionallinklistutil
     bslalg_nothrowmovableutil
     bslalg_rbtreeanchor
     bslalg_typetraitbitwisecopyable                     !DEPRECATED!
     bslalg_typetraitbitwiseequalitycomparable           !DEPRECATED!
     bslalg_typetraitbitwisemoveable                     !DEPRECATED!
     bslalg_typetraithaspointersemantics                 !DEPRECATED!
     bslalg_typetraithasstliterators                     !DEPRECATED!
     bslalg_typetraithastrivialdefaultconstructor        !DEPRECATED!
     bslalg_typetraitpair                                !DEPRECATED!
     bslalg_typetraitusesbslmaallocator                  !DEPRECATED!

  2. bslalg_bidirectionallink
     bslalg_containerbase
     bslalg_dequeimputil
     bslalg_functoradapter
     bslalg_hashutil
     bslalg_hasstliterators
     bslalg_hastrait                                     !DEPRECATED!
     bslalg_nothrowmovablewrapper
     bslalg_numericformatterutil
     bslalg_rbtreenode
     bslalg_scalardestructionprimitives                  !DEPRECATED!
     bslalg_swaputil
     bslalg_typetraitnil                                 !DEPRECATED!

  1. bslalg_arrayprimitives_cpp03                                     !PRIVATE!
     bslalg_dequeprimitives_cpp03                                     !PRIVATE!
Component Synopsis:
bslalg_arraydestructionprimitives:
Provide primitive algorithms that destroy arrays.
bslalg_arrayprimitives:
Provide primitive algorithms that operate on arrays.
bslalg_arrayprimitives_cpp03: PRIVATE
Provide C++03 implementation for bslalg_arrayprimitives.h
bslalg_autoarraydestructor:
Provide a proctor for destroying arrays.
bslalg_autoarraymovedestructor:
Provide a proctor for destroying arrays.
bslalg_autoscalardestructor:
Provide a proctor for destroying an object.
bslalg_bidirectionallink:
Provide a basic link type for building doubly-linked lists.
bslalg_bidirectionallinklistutil:
Provide utilities to maintain bidirectional list data structures.
bslalg_bidirectionalnode:
Provide a node holding a value in a doubly-linked list.
bslalg_constructorproxy:
Provide a proxy for constructing and destroying objects.
bslalg_containerbase:
Provide a wrapper for STL allocators, respecting bslma semantics.
bslalg_dequeimputil:
Provide basic parameters and primitive data structures for deques.
bslalg_dequeiterator:
Provide a primitive iterator over deque data structures.
bslalg_dequeprimitives:
Provide primitive algorithms that operate on deques.
bslalg_dequeprimitives_cpp03: PRIVATE
Provide C++03 implementation for bslalg_dequeprimitives.h
bslalg_functoradapter:
Provide an utility that adapts callable objects to functors.
bslalg_hashtableanchor:
Provide a type holding the constituent parts of a hash table.
bslalg_hashtablebucket:
Provide a bucket representation for hash table data structures.
bslalg_hashtableimputil:
Provide algorithms for implementing a hash table.
bslalg_hashutil:
Provide a utility of hash functions.
bslalg_hasstliterators:
Provide a tag type used to detect STL-like iterators traits.
bslalg_hastrait: DEPRECATED
Provide a meta-function to detect if a type has a given trait.
bslalg_nothrowmovableutil:
Provide a wrapper that asserts a noexcept move constructor.
bslalg_nothrowmovablewrapper:
Provide a wrapper that asserts a noexcept move constructor.
bslalg_numericformatterutil:
Provide a utility for formatting numbers into strings.
bslalg_rangecompare:
Provide algorithms to compare iterator-ranges of elements.
bslalg_rbtreeanchor:
Encapsulate root, first, and last nodes of a tree with a count.
bslalg_rbtreenode:
Provide a base class for a red-black binary tree node.
bslalg_rbtreeutil:
Provide a suite of primitive algorithms on red-black trees.
bslalg_scalardestructionprimitives: DEPRECATED
Provide primitive algorithms that destroy scalars.
bslalg_scalarprimitives:
Provide primitive algorithms that operate on single elements.
bslalg_selecttrait: DEPRECATED
Provide a meta-function to select a suitable trait on a type.
bslalg_swaputil:
Provide a simple to use swap algorithm.
bslalg_typetraitbitwisecopyable: DEPRECATED
Provide a trait to mark classes as bit-wise copyable.
bslalg_typetraitbitwiseequalitycomparable: DEPRECATED
Provide a trait to mark classes as bit-wise eq.-comparable.
bslalg_typetraitbitwisemoveable: DEPRECATED
Provide a trait to mark classes as bit-wise moveable.
bslalg_typetraithaspointersemantics: DEPRECATED
Provide a trait to mark classes as having pointer semantics.
bslalg_typetraithasstliterators: DEPRECATED
Provide a trait to mark classes as having STL-like iterators.
bslalg_typetraithastrivialdefaultconstructor: DEPRECATED
Provide a trait to mark classes as having a trivial default ctor.
bslalg_typetraitnil: DEPRECATED
Provide a trait to mark classes as having no other traits.
bslalg_typetraitpair: DEPRECATED
Provide a trait to mark classes as similar to std::pair.
bslalg_typetraits: DEPRECATED
Provide compile-time traits that can be associated with types.
bslalg_typetraitusesbslmaallocator: DEPRECATED
Provide a trait to mark types that use bslma allocators.