Namespace for datum types in the bdl package group.

Types

Name

Description

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).

DatumArrayBuilder

This class provides a mechanism to build a Datum object having an array value in an exception‐safe manner.

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.

DatumBinaryRef

This class provides a type to represent a pointer to non‐modifiable binary data and an integral size value.

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.

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.

DatumIntMapEntry

This class represents an entry in a datum map keyed by string values.

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.

DatumMaker

This concrete mechanism class provides "sugar" for easily creating bdld::Datum objects for testing.

DatumMapBuilder

This class provides a mechanism to build a Datum object having a map value in an exception‐safe manner.

DatumMapEntry

This class represents an entry in a datum map keyed by string values.

DatumMapOwningKeysBuilder

This class provides a mechanism to build a Datum object having a map (owning keys) value in an exception‐safe manner.

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.

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.

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.

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.

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.

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.

DatumUtil

This struct serves as a namespace for utility functions that operate on bdld::Datum objects.

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.

Datum_IntMapHeader

This component‐local class provides a layout of the meta‐information stored in front of the Datum int‐maps.

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).

Datum_MapHeader

This component‐local class provides a layout of the meta‐information stored in front of the Datum maps.

ManagedDatum

This class implements a smart‐pointer‐like resource manager for a Datum object.

Functions

Name

Description

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.

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.

operator<<

Stream insertion operators

operator==

Equality operators

operator!=

Inequality operators

operator<

Less‐than operators

operator<=

Less‐than‐or‐equal operators

operator>

Greater‐than operators

operator>=

Greater‐than‐or‐equal operators

Created with MrDocs