BDE 3.44.0: Production Release

Schedule

  • BDE team is pleased to announce that the BDE 3.44.0 production release was completed on Wednesday, Dec 11, 2019

BDE 3.44.0 Highlights

Detecting and Addressing Common Problems with Smart Pointers

The most common cause of bugs with the smart pointer types bsl::shared_ptr and bslma::ManagedPtr is incorrectly passing allocators on construction.

bde_verify recently introduced checks (in version 1.3.1) that identify common mistakes when constructing bslma::ManagedPtr and bsl::shared_ptr objects. The new checks can be used to detect bugs in existing code.

In parallel, BDE 3.44 has introduced a new pair of utility functions, bslma::ManangedPtrUtil::makeManaged and bslma::ManagedPtrUtil::allocateManaged that reduce the possibility of error when creating a bslma::ManagedPtr (which parallel the standard bsl::make_shared and bsl::allocate_shared).

We recommend these utilities when creating bsl::shared_ptr and bslma::ManagedPtr objects.

The new function signatures are as follows:

template <class ELEMENT_TYPE, class... ARGS>
static ManagedPtr<ELEMENT_TYPE> allocateManaged(
                                          bslma::Allocator *basicAllocator,
                                          ARGS&&...         args);
    // This function uses the supplied 'basicAllocator' to allocate the
    // footprint of the new object, and as a constructor argument for
    // 'ELEMENT_TYPE' if 'ELEMENT_TYPE' is 'bslma::allocator' aware.

template <class ELEMENT_TYPE, class... ARGS>
static ManagedPtr<ELEMENT_TYPE> makeManaged(ARGS&&... args);
    // This function uses the default 'basicAllocator' to allocate the
    // footprint of the new object, and supplies 'args' (without
    // amendment) to the constructor of 'ELEMENT_TYPE'.

Fixed requests: 3.44.0

Summary

(reverted) Possible (intentional) undefined behavior in ‘balber_beruniversal

[bsl] bslmf_isbitwiseequalitycomparable has no documentation or test coverage

Cleanup: remove all references to bsl+stdhdrs

Please provide bslma::makeManaged

bsitzo_tzdftimezoneutil.cpp incorrectly using Asia/Calcutta

Fix ‘pretty’ output for baljsn_Formatter

Update ‘bsl::make_shared’ behavior

[bsl] Optimize ‘bslmf_voidtype’ for C++11

questions for using decimal64FromDouble(double, int)

Fix UB with TimerEventSchedulerTestTimeSource

Avoid allocation when printing bdld::DatumMapEntry

[bsl] simplify nested trait detection and other traits using ‘BSLMF_VOIDTYPE

Fix failing baljsn_encoder test case on Sun

(doc-only) bsls_linkcoercion documentation needs refinement

bdls_processutil: instrument get{ProcessName,PathToExecutable} to log error

Add build prerequisites to bde/bde README

baetzo_windowstimezoneutil.t.cpp test driver CASE 1 failing

Fix baejsn_encoder test failures resulting from baljsn changes

Correct nightly bsl test driver build error

Use correct library detection macros for Solaris CC compiler

bdlcc::SharedObjectPool ctor interface is ambiguous

bsls_asserttest makes no note on noexcept or destructors