BDE 3.82.0: Production Release

Schedule

  • The BDE team announces that the BDE 3.82.0 production release was completed on Tuesday, June 1, 2021.

BDE 3.82.0 Highlights

Continuing BDE 4.0 Changes

This release contains a several updates to better support the platform standard library, which are part of the BDE 4.0 effort. This includes changes to bdlb::Tokenizer and bdlb::GuidUtil to add support for string_view, as well as the introduction of new components – bdlb_caselessstringviewequalto, bdlb_caselessstringviewless, bdlb_caselessstringviewhash.

Enhancement: Constrained bsl::function Constructor Overload Resolution

This release constrains the constructor of bsl::function that accepts callable objects to only participate in overload resolution if those objects are callable with the arguments and return type of the bsl::function in C++11 and later. These constraints were added to improve standard conformance. For more information, see the cppreference documentation for std::function constructor #5.

This change allows programmers to define overload sets that accept functions of different signatures. For example, one can now define an API like the following:

struct MyUtil {
   // CLASS METHODS
   static void registerCallback(const bsl::function<void()>& callback);
     // Invoke the specified 'callback' when an event occurs.

   static void registerCallback(
                     const bsl::function<void(int)>& callbackWithStatus);
    // Invoke the specified 'callback' with a status code when an event
    // occurs.
};

And the following code will select the appropriate overload of registerCallback based on whether the supplied callable object is compatible with the signature void() or void(int):

// The following uses overload #1.
MyUtil::registerCallback([]() {
    bsl::cout << "An event occurred.\n";
});

// The following uses overload #2.
MyUtil::registerCallback([](int status) {
    bsl::cout << "An event occurred with status code: " << status << "\n";
});

Fixed requests: 3.82.0

Summary

bsl::function constructor does not support C++14 overload limiting

bde 4.0: Component ‘bdlb_guidutil’

bde 4.0: Component ‘bdlb_tokenizer’

bdlb_caselessstringview* – case-insensitive equal, hash, less functions

Investigate XLC16 bssl_stackaddressutil.t failure

Runtime error in bdlb::BitMaskUtil::lt(int index) reported by UBSan

Make bsl::string_view trivially copyable

please correct Windows 2019 test build errors in bslmf_ismemberpointer.t.cpp

bslstl_iterator: nightly build problem with bsl::size

bdlmt_signaler: temporarily work around Aix compiler bug

Release BDE 3.82.0