BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdld.h
Go to the documentation of this file.
1/// @file bdld.h
2///
3///
4/// @defgroup bdld Package bdld
5/// @brief Basic Development Library Datum (bdld)
6/// @addtogroup bdl
7/// @{
8/// @addtogroup bdld
9/// [bdld]: group__bdld.html
10/// @{
11///
12/// # Purpose {#bdld-purpose}
13/// Provide a variant type ('Datum') and supporting utilities.
14///
15/// # Mnemonic {#bdld-mnemonic}
16/// Basic Development Library Datum (bdld)
17///
18/// # Description {#bdld-description}
19/// The 'bdld' package defines in @ref bdld_datum a type that can
20/// contain an assortment of different value types, including user-defined types.
21/// Other components provide utilities for assembling arrays and maps of 'Datum'
22/// objects.
23///
24/// Note that 'bdld::Datum' has many features of value-semantic types (including
25/// an 'operator=='), but is not a VST. See {@ref bdld_datum } component
26/// documentation.
27///
28/// ## Hierarchical Synopsis
29///
30/// The 'bdld' package currently has 11 components having 4 levels of physical
31/// dependency. The list below shows the hierarchical ordering of the components.
32/// The order of components within each level is not architecturally significant,
33/// just alphabetical.
34/// @code
35/// 4. bdld_datummaker
36///
37/// 3. bdld_datumarraybuilder
38/// bdld_datumintmapbuilder
39/// bdld_datummapbuilder
40/// bdld_datummapowningkeysbuilder
41/// bdld_datumutil
42/// bdld_manageddatum
43///
44/// 2. bdld_datum
45///
46/// 1. bdld_datumbinaryref
47/// bdld_datumerror
48/// bdld_datumudt
49/// @endcode
50///
51/// ## Component Synopsis
52///
53/// @ref bdld_datum :
54/// Provide a discriminated variant type with a small footprint.
55///
56/// @ref bdld_datumarraybuilder :
57/// Provide a utility to build a `Datum` object holding an array.
58///
59/// @ref bdld_datumbinaryref :
60/// Provide a type to represent binary data and its size.
61///
62/// @ref bdld_datumerror :
63/// Provide a type for an error code with an optional error message.
64///
65/// @ref bdld_datumintmapbuilder :
66/// Provide a utility to build a `Datum` object holding an int-map.
67///
68/// @ref bdld_datummaker :
69/// Provide a mechanism for easily creating `bdld::Datum` objects.
70///
71/// @ref bdld_datummapbuilder :
72/// Provide a utility to build a `Datum` object holding a map.
73///
74/// @ref bdld_datummapowningkeysbuilder :
75/// Provide a utility to build a `Datum` object holding a map.
76///
77/// @ref bdld_datumudt :
78/// Provide a type to represent a user-defined type.
79///
80/// @ref bdld_datumutil :
81/// Provide extra functions that operate on `bdld::Datum` objects.
82///
83/// @ref bdld_manageddatum :
84/// Provide a smart-pointer-like manager for a `Datum` object.
85///
86/// @}
87/** @} */