BDE 4.3.0 Release¶
Schedule¶
The BDE team announces that the BDE 4.3.0 production release was completed on Thursday, February 22, 2024.
BDE 4.3.0 Release Highlights¶
Improved bdlb::BitUtil
Platform Compatibility¶
In this release, the overload sets of the functions in bdlb::BitUtil
have
been updated to avoid ambiguities in overload resolution. Prior to this
change, the overload sets accepted 32- and 64-bit width unsigned types
(uint32_t
and uint64_t
respectively), which might result in an
ambiguous call when invoked with the fundamental unsigned long long
,
depending on the types that the fixed-width types are aliased to on the
particular platform. Instead, bdlb::BitUtil
now provides the overloads
accepting fundamental types (unsigned int
, unsigned long
, and
unsigned long long
) which prevent any such ambiguities on all platforms.
New Feature: bdlb::BlobUtil::append
with a Fill Character¶
This release adds a new overload to bdlb::BlobUtil::append
that accepts a
number of characters to append as well as the charater with which to initialize
the new elements. This overload is particularly beneficial when used instead
of bdlbb::Blob::setLength
in test drivers run using tools like Valgrind
that issue an error when a buffer having uninitialized values is passed to a
system call.
Inreased Performance of bdlb::Guid::print
and bdlb::GuidUtil::guidToString
¶
This release introduces significant improvements to the performance of string
formatting functions for bdlb::Guid
objects by avoiding the use of string
streams and employing SSE instructions where available. In addition,
bdlb::Guid::format
has been added that allows formatting the GUID into an
arbitrary buffer, bypassing an allocation that would be required by converting
a GUID to a bsl::string
:
void printGuid(const bdlb::Guid& guid)
{
char buffer[bdlb::Guid::k_GUID_NUM_CHARS];
guid.format(buffer);
bsl::cout << buffer;
}
Thank you to Cameron Desrochers for the contribution!
Fixed DRQSs:¶
Summary |
---|
is_constructible<bsl::pair> returns incorrect results because of disabled SFINAE constraints |
‘bsls::Types::Uint64’ and ‘bsl::uint64_t’ are different on Linux, breaking overloads for ‘bdld::BitUtil’ |
Remove the ‘allocator’ accessor to bsl::string |
bdlbb::Blob create ‘append’ |
Multiple definitions of bsl::monostate operators |
-Wmaybe-uninitialized and bsl::optional<bsl::vector<>> issue on DTS-12 |
Speed up GuidUtil::guidToString |
Remove use of bsl::string::allocator |