BDE 3.27.0: Production Release¶
Schedule¶
The BDE team is pleased to announce that the BDE 3.27.0 production release was completed on Monday, April 22, 2019
BDE 3.27.0 Highlights¶
New <bsl_system_error.h> Support in BSL¶
The BDE 3.27 release introduces consistent support for the standard library
<system_error>facility, enabling the use of standard C++ error facilities in applications that support Sun and AIX. Previously, including<bsl_system_error.h>would make the platform implementation of the types in<system_error>available in thebsl::namespace (e.g.,bsl::error_code). This behavior has not changed (i.e.,bsl::error_codewill still alias the platform supplied type with C++11 compilers). Now,<bsl_system_error.h>may also can also be included on C++03 compilers, and provides the standard types (to the extent permitted by a C++03 compiler).This makes the following standard types consistently available in the
bslnamespace:
error_category
error_code
error_condition
system_error
is_error_code_enum
is_error_condition_enum
errcAs well as making the following free functions consistently available in the
bslnamespace:
generic_category
system_category
make_error_code
make_error_conditionFinally, the following macros and
typedef’s to facilitate interoperability between C++03 and C++11:
- o
BSL_IS_ERROR_CODE_ENUM_NAMESPACE: macro defining a namespace used tospecialize the
is_error_code_enumtrait- o
BSL_IS_ERROR_CONDITION_ENUM_NAMESPACE: macro defining a namespaceused to specialize the
is_error_code_enumtraito
bsl::ErrcEnum:typedefforbsl::errc::Enumorstd::errcThe BDE team is planning to integrate the standard system error facilities into the new BHL HTTP/2 library, with the aim of providing a set of best practices for using this facility in the coming months.
Some emplace* Methods Updated to C++17 Return Value¶
C++17 changes the return values of
emplace*methods fromvoidto a non-constreference to the newly added element. In this release, that has been made to theemplace*methods of:
bsl::deque
bsl::list
bsl::queue
bsl::stack
bsl::vectorPrevously, obtaining a reference to a newly added element was written so:
// ... myList.emplace_back(a, b, c, d); SomeType& newlyAddedItem = myList.back(); // ...Now, those same actions can be expressed more succinctly:
// ... SomeType& newlyAddedItem = myList.emplace_back(a, b, c, d); // ...This change of return value is source compatible except where one is defining a pointer type to any of these changed methods.
Contact: Alisdair Meredith
Ticket: DRQS 139085436