Feature Index

Allocators

BDE objects that allocate memory are designed to use a user-defined memory allocating mechanism (i.e., an allocator) that is specified on object construction. Note that, unlike allocators specified as class-template parameters (à la policy-based design), specifying an allocator this way does not define a new type. Different objects of the same type can use different allocator mechanisms, and still fully interact with each other.

Date and Time

BDE Provides types for representing dates, times, and calendars, as well as common facilities for operating on these types (e.g., obtaining the current system time, converting time values between time zones).

Calendars

A range of dates with weekly designated non-business days (i.e., weekend days) and other designated special days (i.e., holidays).

  • Calendar protocols and types: bdlt.

Current Date and Time

Date and Time

Time Zones

Timing

Conversions

Decimal Floating-Point

Libraries specialized for accurate base-10 arithmetic (IEEE-754 2008): bdldfp.

Defensive Programming

Redundant code providing optional run-time checks to validate preconditions (and invariants):

Encodings & Hashings

Base64, MD5, CRC32, UTF-8, UTF-16: bdlde.

Function Abstractions

Objects that serve as functions:

  • Functor creation: bdlf.

Glossary of BDE Terminology

Component: bsldoc_glossary.

Logging and Metrics

Publish status from a running program

  • Logging: ball.

  • Metrics reporting: balm.

Messaging

Serialization of values in different formats:

Miscellaneous

OS Operations

Parsing

Smart Pointers

Mechanisms for managing resource recovery:

Stack Traces & Stack-Recording Allocator

Package: balst.

Test Apparatus

Threads

Concurrent programming:

  • Thread Primitives: Atomic integers: bsls_atomic.

  • Thread Primitives: Mutexes, semaphores, read-write locks, and thread-management: bslmt.

  • Thread-Safe Containers: bdlcc.

  • Thread Pools and Event Schedulers: bdlmt.

Traits

Types and meta-functions for writing generic libraries: bslmf.