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