BDE 3.93.0 Release¶
Schedule¶
The BDE team announces that the BDE 3.93.0 production release was completed on Monday, November 1, 2021.
BDE 3.93.0 Highlights¶
std::pair and std::tuple Now Supported as Keys in bsl Containers¶
Two new components, bslh_hashpair and bslh_hashtuple, define
hashAppend function templates for std::pair and std::tuple types,
respectively. Recall that std::tuple is available for version C++11 and
later.
With these function templates defined, these two standard types can be used as
keys in bsl hash-based containers (e.g., bsl::unordered_set,
bsl::unordered_map). For example,
typedef std::pair<int, int> StdPairInts;
typedef bsl::unordered_set<StdPairInts> SetOfStdPairInts; // Use as key.
SetOfStdPairInts setOfStdPairInts;
setOfStdPairInts.insert(std::make_pair(0, 0));
setOfStdPairInts.insert(std::make_pair(1, 1));
setOfStdPairInts.insert(std::make_pair(2, 2));
assert(3 == setOfStdPairInts.size());
and, for C++11 and later, one can also use std::tuple:
#include <bsls_libraryfeatures.h>
#ifdef BSLS_LIBRARYFEATURES_HAS_CPP11_TUPLE
using StdTripleInts = std::tuple<int, int, int>;
using SetOfStdTripleInts = bsl::unordered_set<StdTripleInts>; // Use as key.
SetOfStdTripleInts setOfStdTripleInts;
setOfStdTripleInts.insert(std::make_tuple(0, 0, 0));
setOfStdTripleInts.insert(std::make_tuple(1, 1, 1));
setOfStdTripleInts.insert(std::make_tuple(2, 2, 2));
assert(3 == setOfStdTripleInts.size());
#endif // BSLS_LIBRARYFEATURES_HAS_CPP11_TUPLE
User-defined types having hashAppend functions can be used as elements of
std::pair and/or std::tuple types that are used as hash keys. See
bslh_hash for further details.
New (Migrated) Components: balb_leakybucket, balb_ratelimiter, balb_reservationguard¶
This release migrates 3 components from the internal bte transport library
to the open-source balb package in the bal library: balb_leakybucket,
balb_ratelimiter,
and balb_reservationguard.
These components provide facilities to help control the rate of data being sent
over a network connection (note that a fully thread-safe version of balb_leakybucket is avaliable
as bdlmt_throttle).
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 the following
components or packages to add support for bsl::string_view, std::string, and/or
std::pmr::string (where supported):
bbldc
bdlde::Utf8Util::appendUtf8CodePoint
Fixed requests: 3.93.0¶
Summary |
|---|
Define hashAppend for bsl::tuple for usage in unordered containers |
sim_cpp11_features.pl uses incorrect macro name for split test drivers. |
Create robobuild-based tool for BDE test builds |
Migrating leaky bucket related components from BTE to BDL |
Specify the security (or lack thereof) of bslx in the package docs |
bbldc: BDE-4.0 interfaces |
bde-4.0: bdlde::Utf8Util::appendUtf8CodePoint |
Define ‘hashAppend’ for ‘std::pair’ for usage in unordered containers |
‘balcl_typeinfo.t.cpp’: case 10: memory leak |
Release BDE 3.93.0 |