BDE 4.14.0 Release

Schedule

  • The BDE team announces that the BDE 4.14.0 production release was completed on Monday, Sept 23, 2024, and is now in unstable and robo-trunk.

BDE 4.14.0 Release Highlights

a_cdb2::SqlService Support Calling cdb2_bind_array

bdld::Datum Now Accepts bsl::allocator<> Arguments

bdld::Datum now supports passing allocators using the bsl::allocator<> types as well as the older bslma::Allocator * convention.

New BDE Documentation Style

This release introduces a new BDE documenation style.

The major changes in the new style:
  • Documentation blocks are moved in front of the documented entities (classes, structs, functions, etc ).

  • Public documentation blocks use Doxygen-style comments starting with 3 slashes (///)

  • BDE markup language is changed to Markdown for all documentation blocks.

  • Public documenation blocks may use Doxygen special commands.

Please see BDE Documentation Changes for a detailed description of changes.

This code snippet illustrates some of the new documentation features:

// balt_example.h                                                 -*-C++-*-
#ifndef INCLUDED_BALT_EXAMPLE
#define INCLUDED_BALT_EXAMPLE

#include <bsls_ident.h>
BSLS_IDENT("$Id: $")

//@PURPOSE: Provide a component to illustrate BDE formatting.
//
//@CLASSES:
//  balt::Example: class illustrating formatting
//
//@SEE_ALSO: balt_other
//
//@DESCRIPTION: This component provides sample code that illustrates the
// BDE documentation format.
//
// Please refer to  `balt_other` for additional information, specifically,
// section [](balt_other#Motivation for BDE documentation changes).
//
// This component implements the following features:
// * Feature 1
//   - Sub-feature a
//   - Sub-feature b
// * Feature 2
//
// Both Markdown and legacy headings will be recognized in the component
// documentation block.

// # Features
// Please refer to the [Doxygen Markdown Support]
// (https://www.doxygen.nl/manual/markdown.html) for exact list of
// supported Markdown syntax.
//
///Usage
///-----
// This section illustrates the intended use of this component.
//
///Example 1: Basic Usage
/// - - - - - - - - - - -
//
// Code block:
// ```
//  #include <balt_example.h>
//  int main()
//  {
//      return 0;
//  }
// ```

namespace BloomberLP {
namespace balt {

/// This class illustrates the new BDE documentation style.
class Example {

  private:

    // PRIVATE TYPES

    /// This class ... lorem ipsum dolor sit amet.
    class Example_Subclass {
    };

  public:
    // CREATORS

    /// Construct an example object. Optionally specify the initial value
    /// `data`.
    Example();
    explicit Example(int data);

    // MANUPULATORS

    /// Set the value of this object to the specified `data`.
    void setValue(int data);

    // ACCESSORS

    /// This method ...
    /// @DEPRECATED: Use `bar()` instead.
    void  foo() const;
};

Fixed DRQSs:

Summary

replace BSLS_ASSERT_OPT with BSLS_ASSERT_INVOKE_NORETURN in bslmt for

Optimize BSLMT_ONCE_DO for common case of already being done

Address UBSAN issues in bslh_spookyhashalgorithmimp

Support for bsl::allocator<> in Datum overloads

Address UBSAN issues in bdlde_crc32c

Address UBSAN issues in bdlde_md5

Address UBSAN issues in bslh_siphashalgorithm

Bug in bdlb_variant.h in GCC12?

bdlb::Tokenizer operator++(int) is ambiguous

Convert bslma_constructionutil test driver to auto split

Auto split bslmf_invokeresult test driver

Auto split bslstl_deque test driver with script

Re-split bslstl_function test driver with the xt.cpp scipt

Re-split bslstl_list test driver using the .xt.cpp script

Re-split bslstl_vector test driver to use .xt.cpp script

Modify BSLA_PRINTF to use gnu_printf when compiiling with GCC

new warning about d_capacity , bslstl_string.h line 3999

please correct recently introduced test run errors in bdl and bal

BALL Filobserver 2 documentation is potentially outdated / incorrect.