bdld.txt @PURPOSE: Provide a variant type ('Datum') and supporting utilities. @MNEMONIC: Basic Development Library Datum (bdld) @DESCRIPTION: The 'bdld' package defines in 'bdld_datum' a type that can contain an assortment of different value types, including user-defined types. Other components provide utilities for assembling arrays and maps of 'Datum' objects. Note that 'bdld::Datum' has many features of value-semantic types (including an 'operator=='), but is not a VST. See {'bdld_datum'} component documentation. /Hierarchical Synopsis /--------------------- The 'bdld' package currently has 10 components having 4 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. .. 4. bdld_datummaker 3. bdld_datumarraybuilder bdld_datumintmapbuilder bdld_datummapbuilder bdld_datummapowningkeysbuilder bdld_manageddatum 2. bdld_datum 1. bdld_datumbinaryref bdld_datumerror bdld_datumudt .. /Component Synopsis /------------------ : 'bdld_datum': : Provide a discriminated variant type with a small footprint. : : 'bdld_datumarraybuilder': : Provide a utility to build a 'Datum' object holding an array. : : 'bdld_datumbinaryref': : Provide a type to represent binary data and its size. : : 'bdld_datumerror': : Provide a type for an error code with an optional error message. : : 'bdld_datumintmapbuilder': : Provide a utility to build a 'Datum' object holding an int-map. : : 'bdld_datummaker': : Provide a mechanism for easily creating 'bdld::Datum' objects. : : 'bdld_datummapbuilder': : Provide a utility to build a 'Datum' object holding a map. : : 'bdld_datummapowningkeysbuilder': : Provide a utility to build a 'Datum' object holding a map. : : 'bdld_datumudt': : Provide a type to represent a user-defined type. : : 'bdld_manageddatum': : Provide a smart-pointer-like manager for a 'Datum' object.