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:
u8stringandu8string_view(C++20 only)u16stringandu16string_view(C++11 and later only)u32stringandu32string_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_addressstd::assume_alignedstd::make_unique_for_overwritestd::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) |