BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bdlb.h
Go to the documentation of this file.
1/// @file bdlb.h
2///
3///
4/// @defgroup bdlb Package bdlb
5/// @brief Basic Development Library Basis (bdlb)
6/// @addtogroup bdl
7/// @{
8/// @addtogroup bdlb
9/// @{
10/// * <a href="#bdlb-purpose"> Purpose</a>
11/// * <a href="#bdlb-mnemonic"> Mnemonic </a>
12/// * <a href="#bdlb-description"> Description </a>
13/// * <a href="#bdlb-hierarchical-synopsis"> Hierarchical Synopsis </a>
14/// * <a href="#bdlb-component-synopsis"> Component Synopsis </a>
15///
16/// # Purpose {#bdlb-purpose}
17/// Provide basic types and utilities.
18///
19/// # Mnemonic {#bdlb-mnemonic}
20/// Basic Development Library Basis (bdlb)
21///
22/// # Description {#bdlb-description}
23/// The 'bdlb' package provides utility 'struct's in the broad areas
24/// of bit manipulation, string handling, random number generation, and hashing.
25/// Classes representing nullable and variant types are also provided.
26///
27/// ## Hierarchical Synopsis {#bdlb-hierarchical-synopsis}
28///
29/// The 'bdlb' package currently has 57 components having 5 levels of physical
30/// dependency. The list below shows the hierarchical ordering of the components.
31/// The order of components within each level is not architecturally significant,
32/// just alphabetical.
33/// @code
34/// 5. bdlb_bitstringutil
35/// bdlb_indexspanstringutil
36/// bdlb_indexspanutil
37/// bdlb_nullablevalueref
38///
39/// 4. bdlb_bigendian
40/// bdlb_bitstringimputil
41/// bdlb_caselessstringviewequalto
42/// bdlb_caselessstringviewless
43/// bdlb_indexspan
44/// bdlb_nullableallocatedvalue
45/// bdlb_nullablevalue
46/// bdlb_optionalprinter
47/// bdlb_printadapter
48/// bdlb_variant
49/// bdlb_variantprinter
50///
51/// 3. bdlb_bitmaskutil
52/// bdlb_caselessstringviewhash
53/// bdlb_doublecompareutil
54/// bdlb_guidutil
55/// bdlb_numericparseutil
56/// bdlb_printmethods
57/// bdlb_random
58/// bdlb_string
59/// bdlb_stringviewutil
60///
61/// 2. bdlb_algorithmworkaroundutil
62/// bdlb_arrayutil
63/// bdlb_bitutil
64/// bdlb_chartype
65/// bdlb_cstringequalto
66/// bdlb_cstringhash
67/// bdlb_cstringless
68/// bdlb_float
69/// bdlb_functionoutputiterator
70/// bdlb_guid
71/// bdlb_hashutil
72/// bdlb_literalutil
73/// bdlb_nullableallocatedvalue_pointerbitspair !PRIVATE!
74/// bdlb_nullopt !DEPRECATED!
75/// bdlb_nulloutputiterator
76/// bdlb_pairutil
77/// bdlb_pcgrandomgenerator
78/// bdlb_print
79/// bdlb_randomdevice
80/// bdlb_scopeexit
81/// bdlb_stringrefutil !DEPRECATED!
82/// bdlb_testinputiterator !DEPRECATED!
83/// bdlb_tokenizer
84/// bdlb_topologicalsortutil
85/// bdlb_transformiterator
86/// bdlb_transparentequalto
87/// bdlb_transparenthash
88/// bdlb_transparentless
89/// bdlb_transparentstringhash
90///
91/// 1. bdlb_nullableallocatedvalue_cpp03 !PRIVATE!
92/// bdlb_nullablevalue_cpp03 !PRIVATE!
93/// bdlb_nullablevalueref_cpp03 !PRIVATE!
94/// bdlb_variant_cpp03 !PRIVATE!
95/// @endcode
96///
97/// ## Component Synopsis {#bdlb-component-synopsis}
98///
99/// @ref bdlb_algorithmworkaroundutil :
100/// Provide a namespace for workarounds for faulty standard algorithms
101///
102/// @ref bdlb_arrayutil :
103/// Provide utilities to determine properties of fixed-sized arrays.
104///
105/// @ref bdlb_bigendian :
106/// Provide big-endian integer types.
107///
108/// @ref bdlb_bitmaskutil :
109/// Provide simple mask values of `uint32_t` and `uint64_t` types.
110///
111/// @ref bdlb_bitstringimputil :
112/// Provide functional bit-manipulation of `uint64_t` values.
113///
114/// @ref bdlb_bitstringutil :
115/// Provide efficient operations on a multi-word sequence of bits.
116///
117/// @ref bdlb_bitutil :
118/// Provide efficient bit-manipulation of `uint32_t`/`uint64_t` values.
119///
120/// @ref bdlb_caselessstringviewequalto :
121/// Provide a case-insensitive equality predicate for string views.
122///
123/// @ref bdlb_caselessstringviewhash :
124/// Provide a case-insensitive hash functor for string views.
125///
126/// @ref bdlb_caselessstringviewless :
127/// Provide a case-insensitive less-than predicate for string views.
128///
129/// @ref bdlb_chartype :
130/// Supply locale-independent version of `<ctype.h>` functionality.
131///
132/// @ref bdlb_cstringequalto :
133/// Provide a standard compatible equality predicate for C-strings.
134///
135/// @ref bdlb_cstringhash :
136/// Provide a functor enabling C-strings as unordered-container keys.
137///
138/// @ref bdlb_cstringless :
139/// Provide a standard compatible less-than predicate for C-strings.
140///
141/// @ref bdlb_doublecompareutil :
142/// Provide "fuzzy" equality/relational operations on `double` values.
143///
144/// @ref bdlb_float :
145/// Provide floating-point classification types and functions.
146///
147/// @ref bdlb_functionoutputiterator :
148/// Provides an output iterator for a client-supplied functor.
149///
150/// @ref bdlb_guid :
151/// Provide a value-semantic type for Globally Unique Identifiers.
152///
153/// @ref bdlb_guidutil :
154/// Provide functions that produce Globally Unique Identifiers.
155///
156/// @ref bdlb_hashutil :
157/// Provide a utility of hash functions.
158///
159/// @ref bdlb_indexspan :
160/// Provide a value-semantic attribute type for position and length.
161///
162/// @ref bdlb_indexspanstringutil :
163/// Provide functions that operate on `IndexSpan` and string objects.
164///
165/// @ref bdlb_indexspanutil :
166/// Provide functions that operate on `IndexSpan` objects.
167///
168/// @ref bdlb_literalutil :
169/// Provide utility routines for programming language literals.
170///
171/// @ref bdlb_nullableallocatedvalue :
172/// Provide a template for nullable allocated (out-of-place) objects.
173///
174/// @ref bdlb_nullableallocatedvalue_cpp03 : !PRIVATE!
175/// Provide C++03 implementation for bdlb_nullableallocatedvalue.h
176///
177/// @ref bdlb_nullableallocatedvalue_pointerbitspair : !PRIVATE!
178/// Provide a mechanism for using the unused bits of a pointer.
179///
180/// @ref bdlb_nullablevalue :
181/// Provide a template for nullable (in-place) objects.
182///
183/// @ref bdlb_nullablevalue_cpp03 : !PRIVATE!
184/// Provide C++03 implementation for bdlb_nullablevalue.h
185///
186/// @ref bdlb_nullablevalueref :
187/// *Tech* *preview* for non-owning reference to nullable objects.
188///
189/// @ref bdlb_nullablevalueref_cpp03 : !PRIVATE!
190/// Provide C++03 implementation for bdlb_nullablevalueref.h
191///
192/// @ref bdlb_nullopt : !DEPRECATED!
193/// Provide a tag type and constant indicating an empty nullable value.
194///
195/// @ref bdlb_nulloutputiterator :
196/// Provide an output iterator type that discards output.
197///
198/// @ref bdlb_numericparseutil :
199/// Provide conversions from text into fundamental numeric types.
200///
201/// @ref bdlb_optionalprinter :
202/// Provide a suite of helper classes for printing `bsl::optional`.
203///
204/// @ref bdlb_pairutil :
205/// Provide support functions for `bsl::pair`.
206///
207/// @ref bdlb_pcgrandomgenerator :
208/// Provide a class to generate random numbers using the PCG algorithm.
209///
210/// @ref bdlb_print :
211/// Provide platform-independent stream utilities.
212///
213/// @ref bdlb_printadapter :
214/// Provide object for streaming objects using `bdlb::PrintMethods`.
215///
216/// @ref bdlb_printmethods :
217/// Provide methods for uniform printing of value-semantic types.
218///
219/// @ref bdlb_random :
220/// Provide a suite of procedures for random-number generation.
221///
222/// @ref bdlb_randomdevice :
223/// Provide a common interface to a system's random number generator.
224///
225/// @ref bdlb_scopeexit :
226/// Provide a general-purpose proctor object for scope-exit logic.
227///
228/// @ref bdlb_string :
229/// Provide utility functions on STL-style and C-style strings.
230///
231/// @ref bdlb_stringrefutil : !DEPRECATED!
232/// Provide utility functions on `bslstl::StringRef`-erenced strings.
233///
234/// @ref bdlb_stringviewutil :
235/// Provide utility functions on `bsl::string_view` containers.
236///
237/// @ref bdlb_testinputiterator : !DEPRECATED!
238/// Provide a pure input iterator for an empty range.
239///
240/// @ref bdlb_tokenizer :
241/// Provide access to user-described tokens via string references.
242///
243/// @ref bdlb_topologicalsortutil :
244/// Provide a utility to topologically sort a collection of inputs.
245///
246/// @ref bdlb_transformiterator :
247/// Provide a wrapping iterator that invokes a functor on dereference.
248///
249/// @ref bdlb_transparentequalto :
250/// Provide a transparent equality predicate.
251///
252/// @ref bdlb_transparenthash :
253/// Provide a transparent hash functor.
254///
255/// @ref bdlb_transparentless :
256/// Provide a transparent less-than predicate.
257///
258/// @ref bdlb_transparentstringhash :
259/// Provide a transparent hash functor.
260///
261/// @ref bdlb_variant :
262/// Provide a variant (discriminated `union`-like) type.
263///
264/// @ref bdlb_variant_cpp03 : !PRIVATE!
265/// Provide C++03 implementation for bdlb_variant.h
266///
267/// @ref bdlb_variantprinter :
268/// Provide a suite of helper classes for printing `bsl::variant`.
269///
270/// @}
271/** @} */