Available C++ Libraries FAQ

Libraries available to download (A-C)

BDE - Basic Development Environment - a set of foundational C++ libraries used at Bloo

What is BDE?

BDE (BDE Development Environment) is a set of C++ software libraries as well as development tools and methodology. Originally developed at Bloomberg L.P., BDE is intended to form the foundation for large scale C++ software products.

BSL (BDE Standard Library), the lowest level BDE library, provides implementations for portions of the C++ standard library, particularly the container types, as well as a suite of system utilities, meta-functions, and algorithms needed to build such containers.

BDL (BDE Development Library), the second BDE library currently provides concrete allocator implementations. This library is under active development and will eventually contain a collection of tools appropriate for a low-level library and application development.

Goals and Benefits of BDE

BDE aims to provide libraries that meet superior standards in terms of their design, documentation, and testing. Every component (i.e., .h/.cpp file pair) provides thorough component-, class-, and method-level documentation, including a compilable example for using that type. Every component also has a thorough test-driver that tests every public method of that component through a comprehensive range of input (see bslstl_map.t.cpp).

These libraries, along with the tools and methodology that accompany them, are meant to enable developers to create their own C++ software that meets similar standards of quality.

The BDE Standard Library (BSL)

BSL provides a finely factored collection of modules (or components) that form the foundation for cross-platform component-based development. The library culminates in the implementation of several standard containers that take advantage of the features of the rest of BSL. Some of the highlights of BSL include:

  • Support for runtime polymorphic memory allocators
    • Provides more efficient application-specific memory-allocation behavior.
    • Provides facilities for testing memory allocation.
    • (see bslma)
  • Enhanced type trait support and trait-aware container facilities
    • Provides for efficient move semantics (similar to to C++11 move-semantics)
    • (see bslmf)
  • Support for defensive programming through a configurable assert facility
    • Support for testing those defensive checks ("negative testing")
    • (see bsls_assert and bsls_asserttest)
  • A modular system for defining hash functions
    • Based on C++ ISO Proposal N3980
    • Enhances the C++ standard defined mechanism for defining hash functions
    • See bslh
  • A facility for testing generic container instantiations with a range of troublesome types
    • (see bsltf)
  • Implementations of basic atomic operations with flexible memory semantics
    • (see bsls_atomic)

The BDE Development Library (BDL)

BDL is under active development, and will eventually contain a wide range of facilities needed for common development tasks. For example, date and time types, specialized containers, thread pools, event schedulers, and file system utilities. The current highlights of BDL include:

  • Value types and utilities for manipulating dates and times.
    • Of particular note bdlt::Date, bdlt::Datetime, bdlt::CurrentTime
    • See bdlt
  • Additional concrete implementations of the allocator interface defined in BSL
    • (see bdlma)
  • Value types and utilities that support decimal floating point arithmetic (IEEE754-2008) (see bdldfp and bdldfp_decimal)
    • These types are is useful where exact representations of decimal fractions are required (e.g., financial transactions).

Operating Systems

  • Linux
  • Solaris
  • PC Windows
  • FreeBSD, Darwin


  • Visual C++
  • GCC
  • Sun CC
  • IBM xlC

Added : 2017-10-03 Amended: 2017-10-03 Licensing : Copyrighted freeware

Add a comment
Our ads
Buy gold
Beat the credit crunch - buy gold online - quickly, safely and at low prices
Trumphurst Home Page
C++ Usenet Newsgroup
A Web form for submissions to this list
Contact the author for permission to distribute

Copyright (c) 2017 Nikki Locke, Trumphurst Ltd.
Permission is granted to distribute over the Internet without charge. The author's permission is required (and usually given) to distribute in any other way, including on CD.