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 |