[#BloombergLP-bdld] = xref:BloombergLP.adoc[BloombergLP]::bdld :relfileprefix: ../ :mrdocs: Namespace for datum types in the `bdl` package group. == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdld/Datum.adoc[`Datum`] | This class implements a mechanism that provides a space‐efficient discriminated union that holds the value of ether scalar type or an aggregate of `Datum` objects. The size of `Datum` is 8 bytes (same as a `double`) on 32‐bit platforms and 16 bytes on 64‐bit platforms. Separate representation are needed on 32 and 64 bit platforms because of the differing size of a pointer (a 64‐bit pointer cannot reasonably be held in a 32‐bit footprint). | xref:BloombergLP/bdld/DatumArrayBuilder.adoc[`DatumArrayBuilder`] | This `class` provides a mechanism to build a `Datum` object having an array value in an exception‐safe manner. | xref:BloombergLP/bdld/DatumArrayRef.adoc[`DatumArrayRef`] | This `class` provides a read‐only view to an array of datums. It holds the array by a `const` pointer and an integral length value. It acts as return value for accessors inside the `Datum` class that return an array of datums. Note that zero‐length arrays are valid. | xref:BloombergLP/bdld/DatumBinaryRef.adoc[`DatumBinaryRef`] | This class provides a type to represent a pointer to non‐modifiable binary data and an integral size value. | xref:BloombergLP/bdld/DatumError.adoc[`DatumError`] | This component `class` provides a _complex constrained_ attribute type, `bdld::DatumError`, that represents an error code with an optional descriptive error message. Note that this class holds a reference to the error message and does not make a copy of it. | xref:BloombergLP/bdld/DatumIntMapBuilder.adoc[`DatumIntMapBuilder`] | This `class` provides a mechanism to build a `Datum` object having an int‐map value in an exception‐safe manner. See `bdld_datum` for more information about integer maps. | xref:BloombergLP/bdld/DatumIntMapEntry.adoc[`DatumIntMapEntry`] | This class represents an entry in a datum map keyed by string values. | xref:BloombergLP/bdld/DatumIntMapRef.adoc[`DatumIntMapRef`] | This class provides a read‐only view to a map of datums (an array of `DatumIntMapEntry` objects). It holds the array by a `const` pointer and an integral size value. It acts as return value for accessors inside the `Datum` class that return a map of `Datum` objects. Note that zero‐size maps are valid. | xref:BloombergLP/bdld/DatumMaker.adoc[`DatumMaker`] | This concrete mechanism class provides "sugar" for easily creating `bdld::Datum` objects for testing. | xref:BloombergLP/bdld/DatumMapBuilder.adoc[`DatumMapBuilder`] | This `class` provides a mechanism to build a `Datum` object having a map value in an exception‐safe manner. | xref:BloombergLP/bdld/DatumMapEntry.adoc[`DatumMapEntry`] | This class represents an entry in a datum map keyed by string values. | xref:BloombergLP/bdld/DatumMapOwningKeysBuilder.adoc[`DatumMapOwningKeysBuilder`] | This `class` provides a mechanism to build a `Datum` object having a map (owning keys) value in an exception‐safe manner. | xref:BloombergLP/bdld/DatumMapRef.adoc[`DatumMapRef`] | This class provides a read‐only view to a map of datums (an array of `DatumMapEntry` objects). It holds the array by a `const` pointer and an integral size value. It acts as return value for accessors inside the `Datum` class that return a map of `Datum` objects. Note that zero‐size maps are valid. | xref:BloombergLP/bdld/DatumMutableArrayRef.adoc[`DatumMutableArrayRef`] | This `class` provides mutable access to a datum array. The users of this class can read from and assign to the individual elements as well as change the length of the array. | xref:BloombergLP/bdld/DatumMutableIntMapRef.adoc[`DatumMutableIntMapRef`] | This `class` provides a mutable access to a datum int‐map. The users of this class can assign to the individual elements and also change the size of the map. | xref:BloombergLP/bdld/DatumMutableMapOwningKeysRef.adoc[`DatumMutableMapOwningKeysRef`] | This `class` provides mutable access to a datum key‐owning map. The users of this class can assign to the individual elements, copy keys and change the size of the map. | xref:BloombergLP/bdld/DatumMutableMapRef.adoc[`DatumMutableMapRef`] | This `class` provides a mutable access to a datum map. The users of this class can assign to the individual elements and also change the size of the map. | xref:BloombergLP/bdld/DatumUdt.adoc[`DatumUdt`] | This class provides a type to represent a pointer to an object of some user‐defined type and an integer value denoting what actual type is represented. | xref:BloombergLP/bdld/DatumUtil.adoc[`DatumUtil`] | This struct serves as a namespace for utility functions that operate on `bdld::Datum` objects. | xref:BloombergLP/bdld/Datum_Helpers.adoc[`Datum_Helpers`] | This struct contains helper functions used to access typed objects within a buffer. The functions assume that objects within the buffers have proper alignment and use casts to suppress compiler warnings about possible alignment problems. | xref:BloombergLP/bdld/Datum_IntMapHeader.adoc[`Datum_IntMapHeader`] | This component‐local class provides a layout of the meta‐information stored in front of the Datum int‐maps. | xref:BloombergLP/bdld/Datum_MakeDependent.adoc[`Datum_MakeDependent`] | Metafunction for use in templates to create a dependent `type` that is identical to the `t_WANT_TO_BE_DEPENDENT` type specified as first template argument using the `t_ALREADY_DEPENDENT` type of the user template (of this metafunction). | xref:BloombergLP/bdld/Datum_MapHeader.adoc[`Datum_MapHeader`] | This component‐local class provides a layout of the meta‐information stored in front of the Datum maps. | xref:BloombergLP/bdld/ManagedDatum.adoc[`ManagedDatum`] | This class implements a smart‐pointer‐like resource manager for a `Datum` object. |=== == Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdld/hashAppend.adoc[`hashAppend`] | Invoke the specified `hashAlgorithm` on the value of the specified `datum` object. Note that the value of a User Defined Type in Datum is a combination of its type integer and the address (pointer value), not the actual value of the object that the pointer points to. | xref:BloombergLP/bdld/swap.adoc[`swap`] | Exchange the values of the specified `a` and `b` objects. This function provides the no‐throw exception‐safety guarantee if the two objects were created with the same allocator and the basic guarantee otherwise. Note that in case the allocators are different this function places a _clone_ of `a` into `b`, and vice versa. See {Value Semantics} on details of the cloning that may happen. | xref:BloombergLP/bdld/operator_lshift-0cb.adoc[`operator<<`] | Stream insertion operators | xref:BloombergLP/bdld/operator_eq-02.adoc[`operator==`] | Equality operators | xref:BloombergLP/bdld/operator_not_eq-0ad.adoc[`operator!=`] | Inequality operators | xref:BloombergLP/bdld/operator_lt-00.adoc[`operator<`] | Less‐than operators | xref:BloombergLP/bdld/operator_le-0e.adoc[`operator<=`] | Less‐than‐or‐equal operators | xref:BloombergLP/bdld/operator_gt-00.adoc[`operator>`] | Greater‐than operators | xref:BloombergLP/bdld/operator_ge-0b9.adoc[`operator>=`] | Greater‐than‐or‐equal operators |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#