BDE 3.91.1 Release

Schedule

  • The BDE team announces that the BDE 3.91.1 production release was completed on Tuesday, October 5, 2021.

BDE 3.91.1 Highlights

bsl::pair and bsl::array Now Provide Deduction Guides

This release adds deduction guides for bsl::pair and bsl::array allowing clients using C++17 to forgo supplying explicit template arguments when creating a bsl::pair or a bsl::array. For example:

bslma::Allocator *alloc = ...

// without C++17 or deduction guides
bsl::pair<double, int> preC17pairA(1.0, 2);
bsl::pair<double, int> preC17pairB(1.0, 2, alloc);
bsl::array<int, 4>     preC17Array{99, 98, 97, 96};

// with C++17 and deduction guides
bsl::pair  postC17PairA(1.0, 2);
bsl::pair  postC17PairB(1.0, 2, alloc);
bsl::array postC17Array{99, 98, 97, 96};

For bsl::array, when using deduction guides, the type of the array is deduced from the type of the first element in the sequence and the size of the array is deduced from the length of the sequence.

Note that C++17 supports automatic template argument deduction in many contexts, however some types require explicit deduction guides in order for the compiler to deduce the template arguments. bsl::pair and bsl::array are the first bsl types to provide deduction guides, extending the deduction guides defined in the standard to be allocator aware. There is ongoing work to provide similar guides for all the standard library types in bsl that require them.

Bug in bdlmt::FixedThreadPool Resulted in drain Not Working as Expected

With a simple sequence of one thread enqueueing jobs and then invoking drain, it was possible that not all jobs submitted were executed before the drain completed. This was an intermittent failure and it was not clear if this could fail on the first occurrence (e.g., whether this was not a problem for a single use of drain).

This release rolls back the affected component.

Fixed requests: 3.91.1

Summary

FixedThreadPool::drain() fails to wait for all jobs to finish

Ball::FileObserver2: Option to disable unique-filename test

balb_performancemonitor stats broken by setting thread name

bsls::StackAddressUtil::getStackAddresses: intermittent error

CTAD for ‘bsl::pair’

bdlc::FlatHashMap performance foot-gun with reserve()

Add template deduction guides for bsl::array

CTAD for ‘bsl::pair’ has type trait error

Release BDE 3.91.1