BDE 4.13.0 Release

Schedule

  • The BDE team announces that the BDE 4.13.0 production release was completed on Monday, September 2, 2024.

BDE 4.13.0 Release Highlights

bsl::optional Now Supports Incomplete Types

This release updates the implementation of bsl::optional so that it is no longer an error to refer to the type bsl::optional<T> when T is an incomplete class type. Note, however, that while T is still incomplete, bsl::optional<T> may be used only in ways that do not require a complete type. For example:

class T;  // ``T`` is incomplete

bsl::optional<T> maybeGetT();  // previously ill formed, now OK

// ``maybeGetT`` cannot be called yet, because calling a function requires
// its return type to be complete.

class T { /* ... */ };

void otherFunc() {
    bsl::optional<T> ot = maybeGetT();  // OK; ``T`` is now complete
}

This change brings bsl::optional’s handling of incomplete class types in line with that of std::optional.

Fixed DRQSs:

Summary

Re-split bslstl::hastable test driver

Allow bsl::optional<incomplete>

Apply BSLS_OVERRIDE_KEYWORD to bde/bde

Address UBSAN issues in bdlc_flathashtable

bsl::is_trivially_default_constructible_v != std::is_trivially_default_constructible_v

Please create a script to help with splitting large test drivers

Please integrate bde_xt_cpp_splitter into bbs

please address windows bdldfp_decimal.t.cpp CASE 7

Fix pmr support for c++20 on Darwin.

reduce bsl nb warnings

please address bslstl_bitset.t.cpp warning for clang-15

A bit convoluted ‘bdlb::NullableValue’ use causes Internal Compiler Error in Visual Studio 2022 in C++20 mode

Address UBSAN issues in bdld_datum

Address UBSAN issues in bdlmt_throttle

Address UBSAN issues in bdlsb_overflowmemoutput

Address UBSAN issues in bdlsb_overflowmemoutstreambuf

Address UBSAN issues in bdlt_date

Use of deprecated CryptGetRandom in bdlb::RandomDevice on Windows

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bbl

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bal except ball

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bal/ball

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bdl

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bsl/bslma

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bsl/bslmf

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bsl/bslmt

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bsl/bsls

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bsl/bslstl

Apply BSLS_OVERRIDE_KEYWORD to bde/bde/goups/bsl/bslx

No member named resetCopyMoveState in bsltf_argumenttype

please replace bcec_skiplist.t.cpp with #define version

bdlmt::MultiQueueThreadPool use-after-free/race bug in shutdown

Please fix bslstl_hashtable test driver cpp03 errors

TSAN race in bdlb_guidutil

reduce or ticket bdl warnings

correct bdlc_indexclerk compile warning

please address clang-15 test compile errors in bslim_bslstandardheadertest and bsls_libraryfeatures

correct bdetu_informixdatetime.t.cpp gcc-12 warning

reduce bde repo gcc-12 warnings

Fix ranges on MacOS

Use automated splitting in bdlt_iso8601util test driver

xt_cpp_splitter; Fix handling of empty _cpp03 files