BloombergLP::balxml::Decoder::decodeAny

Decode into a type-erased bdlar::AnyRef from the specified buffer.

Synopsis

Declared in <balxml_decoder.h>

template<class TYPE>
int
decodeAny(
    std::streambuf* buffer,
    TYPE* object,
    char const* uri = 0);

Description

Decode object from buffer without instantiating templates.

Decode the specified object of parameterized TYPE from the specified stream buffer. The (optionally) specified uri is used for identifying the input document in error messages. Return 0 on success, and a non-zero value otherwise. A compilation error will result unless TYPE conforms to the requirements of a bdlat sequence or choice, as described in bdlat_sequencefunctions and bdlat_choicefunctions. Note that this function behaves identically to decode, but does not instantiate any templates at compile time at the expense of being slightly slower at runtime; see the balxml package documentation for more details.

Return Value

0 on success, and a non-zero value otherwise

Parameters

NameDescription
bufferbuffer providing XML data
objectobject being decoded
urioptional URI identifying the input document in error messages