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 |