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.

Synopsis

Declared in <bdld_datumutil.h>

static
std::ostream&
safeTypedPrint(
    std::ostream& outputStream,
    Datum const& object,
    int level = 0,
    int spacesPerLevel = 4);

Created with MrDocs