BDE 4.5.0 Release

Schedule

  • The BDE team announces that the BDE 4.5.0 production release was completed on Monday, March 18, 2024.

BDE 4.5.0 Release Highlights

ball::Attribute Now Supports bdlb::Guid

bdlb::Guid is now a supported variant for value of ball::Attribute.

GUIDs frequently appear in log records, for example, distributed trace IDs, BAS message IDs, and BAS correlation IDs.

Previously, GUIDs could be stored in ball::Attribute objects as strings, but since the small-string optimization cannot apply on GUIDs encoded into strings (they are too long), there is non-negligible overhead in copying these strings around within an attribute.

Thanks to Cameron Desrochers for the contribution!

emplace for bdlc components

bdlc::::FlatHashMap, bdlc::FlatHashSet, and bdlc::FlatHashTable now implement emplace and try_emplace methods.

Backport of owner_equal and owner_hash

C++26 gained std::owner_equal and std::owner_hash through P1901.

BDE has backported the implementation of owner_equal and owner_hash free functions and methods for bsl::shared_ptr and bsl::weak_ptr.

Fixed DRQSs

Summary

Please create an emplace method for bdlc::FlatHashMap

address warnings in bdljsn_{number,json}util.t.cpp

Add ‘owner_equal’ and ‘owner_hash’

Make bdlb::Guid a first-class ball::Attribute type

Logical operator traits

bslstl_stdexceptutil: improve BDE 4.2.0 release notes

Remove workaround for cpp20 link coercion.

Why does ‘bslim_printer’s example of implementing ‘print’ flushes the stream?

bdlbb::BlobUtil documentation improvements

Provide 16-byte alignment macros on 32 bit x86 architecture

Add support for hashAppend function in NullableAllocatedValue

Disable bdlat compatibility macro

bdlcc::Cache must respect allocator_arg constructors

Add ScopedAttribute_Container ctor with guid