BDE 3.115.0 Release¶
Schedule¶
The BDE team announces that the BDE 3.115.0 production release was completed on Monday, March 20, 2023.
BDE 3.115.0 Highlights¶
New Utility Function: bdlb::PairUtil::tie
¶
The new bdlb::PairUtil::tie
function accepts two lvalue arguments and
returns a bsl::pair
object holding references to its arguments. It can be
used when in place of bsl::tie
in order to assign from a bsl::pair
to
two variables, or anywhere else the creation of a bsl::pair
of references
is desired.
#include <bdlb_pairutil.h>
#include <bsl_utility.h>
#include <bsl_tuple.h>
int main() {
int x, y;
bsl::pair<int, int> pair = {1, 2};
bsl::tie(x, y) = pair; // OK
const bsl::pair<int, int> const_pair = {1, 2};
// bsl::tie(x, y) = const_pair; // error; 'std::tuple<int&, int&>' is
// not assignable from
// 'const bsl::pair<int, int>'
bdlb::PairUtil::tie(x, y) = const_pair; // OK
}
Minimal Symbolic Links Support¶
The new bdls::FilesystemUtil::isSymbolicLink
function returns true
if
the supplied path
is a symbolic link (and false
otherwise). The new
bdls::FilesystemUtil::getSymbolicLinkTarget
function returns the target of
a symbolic link.
On Windows platforms, Windows directory junctions are treated as directory symbolic links and have been available since Windows 2000. True POSIX-like symbolic links have been available since Windows Vista.
Added u*string
and u*string_view
typedefs¶
This release introduces some basic support for compiler-native types
char8_t
(C++20 only), and char16_t
& char32_t
(C++11 & beyond only)
in bsls
, bslmf
, bslstl_string
, and bslstl_string_view
.
New typedefs:
u8string
andu8string_view
(C++20 only)u16string
andu16string_view
(C++11 and later only)u32string
andu32string_view
(C++11 and later only)
C++20 Features¶
This release adds a contains
method to bsl::map
, bsl::multimap
,
bsl::unordered_set
, and bsl::unordered_multiset
from C++03 onwards.
The contains
method will be added to the other bsl
associative
containers in future releases.
Aliases for new C++20 entities were added (in C++20 mode) to the
bsl_memory.h
header:
std::to_address
std::assume_aligned
std::make_unique_for_overwrite
std::construct_at
The bsl_ranges.h
header has been added, aliasing (in C++20 mode) all
the standard ranges
names into the bsl
namespace.
Fixed requests:¶
Summary |
---|
Implement bdlb::PairUtil::tie to support bsl::pair on the right-hand side |
bdls::FilesystemUtil::readLink |
sim_cpp11_features.pl spellcheck pass |
C++17 work: shared_ptr array support and constructor sfinae changes (both are linke |
[FUZZ] ‘TimeZoneUtil::convertLocalToUtc’ corner cases |
bdlcc_boundedqueue.h compile error unary minus operator applied to unsigned type |
Support bsl::allocator_arg_t with bdef_Function |
github: Fix ball_fileobserver2 test failure |
github: Fix bdlmt_eventscheduler.t test failure |
Please complete polishing of bdljsn_json test driver |
Document phabricator automation |
bslim::FuzzUtil should provide a way to consume string_views |
span cosmetic issues |
Update fuzzing article with bsls_precondition section |
char16_t: add C++11 and beyond ‘char*_t’ types and ‘u*string’ types |
bsl::optional<Derived> don’t declare assignment in C++11 and later |
Fix thread-naming related Windows test failures |
Fix bdlmt_eventscheduler.t failure in case 4 |
baljsn::Decoder fails to decode heterogenous JSON lists |
C++20 work: Add <bsl_ranges.h> header and alias standard entities |
C++20 work: Add aliases to <bsl_memory.h> |
C++20 work: Add the ‘contains’ method to the ‘bsl::map’ and to the ‘bsl::multimap’ |
C++20 work: Add the ‘contains’ method to the ‘bsl::unordered_set’ and to the ‘bsl::unordered_map’ |
Apply _t transformation to ball |
‘bdljsn_readoptions’, ‘bdljsn_writeoptons’: normalize with bde’ VST exemplar. |
string_view: doc that substr throws out_of_range |
Avoid dependency on global initialization order in bdlb::GuidUtil::generateNonSecure |
Tests for bdljsn::Json |
Move fuzzing article to main page |
‘bdljsn_tokenizer’: test driver omits one public method. |
bsl::span deduction guide for bsl::vector |
bslmt_threadattributes docs does not list Solaris as supporting thread names |
replace bcep_multiprioritythreadpool.t.cpp with alias test driver |
BDE regression: removed transitive bsl_iosfwd.h include. |
replace bdesu_fdstreambuf.t.cpp with typedef version |
bsls_review can use immediately invoked lambda for c++14 constexpr |
C++20 work: disable ‘BSLS_COMPILERFEATURES_SUPPORT_THREE_WAY_COMPARISON’ on Darwin |
replace baem test drivers with typedef version |
replace bael test drivers with typedef version (does not include bael_log) |