[#BloombergLP-bdld-DatumUtil] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdld.adoc[bdld]::DatumUtil :relfileprefix: ../../ :mrdocs: This struct serves as a namespace for utility functions that operate on `bdld::Datum` objects. == Synopsis Declared in `<bdld_datumutil.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct DatumUtil; ---- == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdld/DatumUtil/safeTypedPrint.adoc[`safeTypedPrint`] | Write the value of the specified `object` to the specified `outputStream` in a human‐readable format that is non‐ambiguous regarding the type of the `bdld::Datum` value printed, and return a reference to the modifiable `outputStream`. Optionally specify an initial indentation `level`, whose absolute value is incremented recursively for nested objects. If `level` is specified, optionally specify `spacesPerLevel`, whose absolute value indicates the number of spaces per indentation level for this and all of its nested objects. If `level` is negative, suppress indentation of the first line. If `spacesPerLevel` is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by `level`). If `stream` is not valid on entry, this operation has no effect. Note that `safeTypedPrint` explicitly allows self‐ referential data structures, or in other words data structures with cycles, to be printed. When a cycle is detected, that subgraph is not printed again. Also note that the human‐readable format is not fully specified, and can change without notice. | xref:BloombergLP/bdld/DatumUtil/typedPrint.adoc[`typedPrint`] | Write the value of the specified `object` to the specified `outputStream` in a human‐readable format that is non‐ambiguous regarding the type of the `bdld::Datum` value printed, and return a reference to the modifiable `outputStream`. Optionally specify an initial indentation `level`, whose absolute value is incremented recursively for nested objects. If `level` is specified, optionally specify `spacesPerLevel`, whose absolute value indicates the number of spaces per indentation level for this and all of its nested objects. If `level` is negative, suppress indentation of the first line. If `spacesPerLevel` is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by `level`). If `stream` is not valid on entry, this operation has no effect. The behavior is undefined unless the data structure represented by `object` is a graph without any cycles. In case of an untrusted data structure, use `safeTypedPrint`. Note that the human‐readable format is not fully specified, and can change without notice. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#