BDE 4.31.0 Release
Schedule
The BDE team announces that the BDE 4.31.0 production release was completed on Monday, November 17, 2025.
BDE 4.31.0 Release Highlights
New bdlar backend for BAS message encoding and decoding
BAS messages are typically described in XSD and then converted into C++ representation using the bas_codegen.pl tool. Those generated C++ types can be serialized and deserialized using any of the supported formats (XML, JSON and ASN.1 BER).
The original implementation of BAS message encoding and decoding was based on template metaprogramming and compile-time code generation and, for big schemas, could cause compiler or linker failures due to the sheer size of instantiated templates.
This release introduces new API for encoding and decoding BAS messages:
encodeAny()
decodeAny()
These new functions rely on run-time dispatch rather than compile-time dispatch. The key benefits of this approach are:
The amount of invisible compile-time generated code is minimal, preventing uncontrolled exponential code bloat.
Most of the encoding/decoding code is precompiled and linked from the BDE library files.
See <no title> for more information.
Optimization of bdld::Datum::clone()
The bdld::Datum::clone() method was re-impemented to take advantage of
byte-copying Datum objects which do not allocate memory. New
implementation yeilds 1.5-2x speed improvement.
Many thanks to Elliot Goodrich and Thomas Prideaux-Ghee for the contribution.
Fixed Tickets
Summary |
|---|
Remove deprecated true_type::VALUE and false_type::VALUE |
Parent Ticket: Virtual Introspection Project |
bdem_Convert loses bdlt::Datetime microsecond precision |
Update the list of macros reported by the bsls_platform test driver |
Wdeprecated-literal-operator diagnostics in bslstl_chrono |
Test deep copying of array references in Datum::clone |
Tidy bslalg_constructorproxy |
Fix SyncBufBase name clash with Qt macro |
BSLS_REVIEW_INVOKE macro has a dangerous design bug |
Fix Datum::clone fo array reference |
balm no longer compiles for C++11 and C++14 |
Please increase the number of variadic args for bdlb::NullableAllocatedValue |