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_code
will 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
bsl
namespace:
error_category
error_code
error_condition
system_error
is_error_code_enum
is_error_condition_enum
errc
As well as making the following free functions consistently available in the
bsl
namespace:
generic_category
system_category
make_error_code
make_error_condition
Finally, 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_enum
trait- o
BSL_IS_ERROR_CONDITION_ENUM_NAMESPACE
: macro defining a namespaceused to specialize the
is_error_code_enum
traito
bsl::ErrcEnum
:typedef
forbsl::errc::Enum
orstd::errc
The 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 fromvoid
to a non-const
reference 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::vector
Prevously, 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