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