bdlb.txt

@PURPOSE: Provide basic types and utilities.

@MNEMONIC: Basic Development Library Basis (bdlb)

@DESCRIPTION: The 'bdlb' package provides utility 'struct's in the broad areas
 of bit manipulation, string handling, random number generation, and hashing.
 Classes representing nullable and variant types are also provided.

/Hierarchical Synopsis
/---------------------
 The 'bdlb' package currently has 49 components having 5 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.
..
  5. bdlb_bitstringutil
     bdlb_indexspanstringutil
     bdlb_indexspanutil

  4. bdlb_bigendian
     bdlb_bitstringimputil
     bdlb_caselessstringviewequalto
     bdlb_caselessstringviewless
     bdlb_indexspan
     bdlb_nullableallocatedvalue
     bdlb_nullablevalue
     bdlb_numericparseutil
     bdlb_optionalprinter
     bdlb_printadapter
     bdlb_variant

  3. bdlb_bitmaskutil
     bdlb_caselessstringviewhash
     bdlb_guidutil
     bdlb_printmethods
     bdlb_random
     bdlb_string
     bdlb_stringviewutil

  2. bdlb_algorithmworkaroundutil
     bdlb_arrayutil
     bdlb_bitutil
     bdlb_chartype
     bdlb_cstringequalto
     bdlb_cstringhash
     bdlb_cstringless
     bdlb_float
     bdlb_functionoutputiterator
     bdlb_guid
     bdlb_hashutil
     bdlb_literalutil
     bdlb_nullopt
     bdlb_nulloutputiterator
     bdlb_pairutil
     bdlb_pcgrandomgenerator
     bdlb_print
     bdlb_randomdevice
     bdlb_scopeexit
     bdlb_stringrefutil                                  !DEPRECATED!
     bdlb_testinputiterator                              !DEPRECATED!
     bdlb_tokenizer
     bdlb_topologicalsortutil
     bdlb_transformiterator
     bdlb_transparentequalto
     bdlb_transparenthash
     bdlb_transparentless

  1. bdlb_nullablevalue_cpp03                                         !PRIVATE!
..

/Component Synopsis
/------------------
: 'bdlb_algorithmworkaroundutil':
:      Provide a namespace for workarounds for faulty standard algorithms
:
: 'bdlb_arrayutil':
:      Provide utilities to determine properties of fixed-sized arrays.
:
: 'bdlb_bigendian':
:      Provide big-endian integer types.
:
: 'bdlb_bitmaskutil':
:      Provide simple mask values of 'uint32_t' and 'uint64_t' types.
:
: 'bdlb_bitstringimputil':
:      Provide functional bit-manipulation of 'uint64_t' values.
:
: 'bdlb_bitstringutil':
:      Provide efficient operations on a multi-word sequence of bits.
:
: 'bdlb_bitutil':
:      Provide efficient bit-manipulation of 'uint32_t'/'uint64_t' values.
:
: 'bdlb_caselessstringviewequalto':
:      Provide a case-insensitive equality predicate for string views.
:
: 'bdlb_caselessstringviewhash':
:      Provide a case-insensitive hash functor for string views.
:
: 'bdlb_caselessstringviewless':
:      Provide a case-insensitive less-than predicate for string views.
:
: 'bdlb_chartype':
:      Supply locale-independent version of '<ctype.h>' functionality.
:
: 'bdlb_cstringequalto':
:      Provide a standard compatible equality predicate for C-strings.
:
: 'bdlb_cstringhash':
:      Provide a functor enabling C-strings as unordered-container keys.
:
: 'bdlb_cstringless':
:      Provide a standard compatible less-than predicate for C-strings.
:
: 'bdlb_float':
:      Provide floating-point classification types and functions.
:
: 'bdlb_functionoutputiterator':
:      Provides an output iterator for a client-supplied functor.
:
: 'bdlb_guid':
:      Provide a value-semantic type for Globally Unique Identifiers.
:
: 'bdlb_guidutil':
:      Provide functions that produce Globally Unique Identifiers.
:
: 'bdlb_hashutil':
:      Provide a utility of hash functions.
:
: 'bdlb_indexspan':
:      Provide a value-semantic attribute type for position and length.
:
: 'bdlb_indexspanstringutil':
:      Provide functions that operate on 'IndexSpan' and string objects.
:
: 'bdlb_indexspanutil':
:      Provide functions that operate on 'IndexSpan' objects.
:
: 'bdlb_literalutil':
:      Provide utility routines for programming language literals.
:
: 'bdlb_nullableallocatedvalue':
:      Provide a template for nullable allocated (out-of-place) objects.
:
: 'bdlb_nullablevalue':
:      Provide a template for nullable (in-place) objects.
:
: 'bdlb_nullablevalue_cpp03':                                         !PRIVATE!
:      Provide C++03 implementation for bdlb_nullablevalue.h
:
: 'bdlb_nullopt':
:      Provide a tag type and constant indicating an empty nullable value.
:
: 'bdlb_nulloutputiterator':
:      Provide an output iterator type that discards output.
:
: 'bdlb_numericparseutil':
:      Provide conversions from text into fundamental numeric types.
:
: 'bdlb_optionalprinter':
:      Provide a suite of helper classes for printing 'bsl::optional'.
:
: 'bdlb_pairutil':
:      Provide a function that creates a pair of references.
:
: 'bdlb_pcgrandomgenerator':
:      Provide a class to generate random numbers using the PCG algorithm.
:
: 'bdlb_print':
:      Provide platform-independent stream utilities.
:
: 'bdlb_printadapter':
:      Provide object for streaming objects using 'bdlb::PrintMethods'.
:
: 'bdlb_printmethods':
:      Provide methods for uniform printing of value-semantic types.
:
: 'bdlb_random':
:      Provide a suite of procedures for random-number generation.
:
: 'bdlb_randomdevice':
:      Provide a common interface to a system's random number generator.
:
: 'bdlb_scopeexit':
:      Provide a general-purpose proctor object for scope-exit logic.
:
: 'bdlb_string':
:      Provide utility functions on STL-style and C-style strings.
:
: 'bdlb_stringrefutil':                                  !DEPRECATED!
:      Provide utility functions on 'bslstl::StringRef'-erenced strings.
:
: 'bdlb_stringviewutil':
:      Provide utility functions on 'bsl::string_view' containers.
:
: 'bdlb_testinputiterator':                              !DEPRECATED!
:      Provide a pure input iterator for an empty range.
:
: 'bdlb_tokenizer':
:      Provide access to user-described tokens via string references.
:
: 'bdlb_topologicalsortutil':
:      Provide a utility to topologically sort a collection of inputs.
:
: 'bdlb_transformiterator':
:      Provide a wrapping iterator that invokes a functor on dereference.
:
: 'bdlb_transparentequalto':
:      Provide a transparent equality predicate.
:
: 'bdlb_transparenthash':
:      Provide a transparent hash functor.
:
: 'bdlb_transparentless':
:      Provide a transparent less-than predicate.
:
: 'bdlb_variant':
:      Provide a variant (discriminated 'union'-like) type.