Quick Links:

bal | bbl | bdl | bsl

Packages

Package Group bsl

Provide a comprehensive foundation for component-based development. More...

Packages

 Package bsla
 

Provide macros for portable use of compiler annotations.

 Package bslalg
 

Provide algorithms and traits used by the BDE STL implementation.

 Package bsldoc
 

Provide documentation of terms and concepts used throughout BDE.

 Package bslfwd: DEPRECATED
 

Provide compatibility for clients using single-level namespace.

 Package bslh
 

Provide a framework for hashing types using swappable algorithms.

 Package bslim
 

Provide implementation mechanisms.

 Package bslma
 

Provide allocators, guards, and other memory-management tools.

 Package bslmf
 

Provide meta-function versions of useful coding constructs.

 Package bslmt
 

Support for multi-threading and thread-safe processes.

 Package bsls
 

Provide system-level utilities for bsl.

 Package bslscm
 

Provide versioning information for BDE library components.

 Package bslstl
 

Provide replacement classes for STL constructs.

 Package bsltf
 

Provide a set of utilities and types to help with testing.

 Package bslx
 

Define externalization protocols and provide implementations.


Detailed Description

Outline
Purpose:
Provide a comprehensive foundation for component-based development.
MNEMONIC: Basic Standard Library (bsl):
Description:
The bsl ("Basic Standard Library") package group contains various packages that provide platform-specific classes, meta-functions, defensive programming mechanisms, a framework for component testing, memory allocation protocols and algorithms, and a C++ standard library implementation.
Note that the C++ standard library is implemented in the bsl namespace instead of the standard std namespace. This allow clients to use both the native compiler provided C++ standard library together with the Bloomberg provided C++ standard library in the same translation unit.
The bsl package group is the foundation of the firm-wide BDE library and has no dependencies beyond the allowed OS and runtime environment dependencies.
Hierarchical Synopsis:
The bsl package group currently has 16 packages having 11 levels of physical dependency. The list below shows the hierarchical ordering of the packages. The order of packages within each level is not architecturally significant, just alphabetical.
  11. bslmt
      bslx

  10. bslim

   9. bsl+bslhdrs

   8. bslstp                                             !DEPRECATED!

   7. bslstl

   6. bslalg

   5. bslh
      bsltf

   4. bslma

   3. bsldoc
      bslmf

   2. bsla
      bslscm

   1. bslfwd                                             !DEPRECATED!
      bsls
Note that the bsl+stdhdrs package is only a compatibility layer for Bloomberg managed code. It is not an essential package for the rest of the BDE libraries (i.e., all other package groups above bsl will compile and function without bsl+stdhdrs). This package implements the logic required for BDE-STL mode.
Note that required source control package bslscm depends on bsls; this behavior is unique to bsl, although it is temporarily also in bde for historic reasons, since logically every other package should depend on bslscm.
Package Synopsis:
bsl+bslhdrs:
Provide a compatibility layer to enable BDE-STL mode in Bloomberg.
bsla:
Provide macros for portable use of compiler annotations.
bslalg:
Provide algorithms and traits used by the BDE STL implementation.
bsldoc:
Provide documentation of terms and concepts used throughout BDE.
bslfwd: DEPRECATED
Provide compatibility for clients using single-level namespace
bslh:
Provide a framework for hashing types using swappable algorithms.
bslim:
Provide implementation mechanisms.
bslma:
Provide allocators, guards, and other memory-management tools.
bslmf:
Provide meta-function versions of useful coding constructs.
bslmt:
Support for multi-threading and thread-safe processes.
bsls:
Provide system-level utilities for bsl.
bslscm:
Provide versioning information for BDE library components.
bslstl:
Provide replacement classes for STL constructs.
bslstp: DEPRECATED
Provide replacement classes (adopted from STLport) for STL.
bsltf:
Provide a set of utilities and types to help with testing.
bslx:
Define externalization protocols and provide implementations.
Package Overview:
This section provides a brief introduction to the packages of the bsl package group. Note that several packages, especially at lower levels in the physical hierarchy, are primarily intended for use by other packages within bsl. See the respective Package Level documents for more details.
bsl+bslhdrs:
The bsl+bslhdrs package provides the bsl version of the standard C++ library (e.g., bsl_vector.h instead of vector, bsl_algorithm.h instead of algorithm). Users of bsl can include these headers to obtain the corresponding C++ STL functionalities.
bslalg:
The bslalg package provides a variety of lower-level algorithms, comparisons, and traits.
bsldoc:
The bsldoc package documents key terminology and concepts used throughout BDE documentation. Note that the components in this package consist entirely of comments, no code.
bslh:
The bslh package provides standard hashing algorithms and components allowing the application of those hashing algorithms to types in a modular way.
bslim:
The bslim package provides implementation mechanisms for features that must have identical syntax and semantics in many disparate classes.
bslma:
bslma provides memory allocation and related proctor and handle objects.
bslmf:
The bslmf package provides low-level "meta-functions" implementing "traits" and other useful properties of types, determined at compile-time.
bsls:
The bsls package provides the needed platform-independent definitions and utilities (with platform-specific implementations) so that the rest of the bsl library, and all conforming applications within the Development Framework, can be written in a truly portable, platform-neutral dialect of C++ -- one having dependency on bsls, but on no other system-specific services. Among the issues dealt with in bsls are hardware, operating system, and compiler definitions, "endian-ness" and alignment of type representation in physical memory, bit-manipulation utilities, and a uniform interface to system services (e.g., timers).
bslscm:
The bslscm package contains only two components, bslscm_version and bslscm_versiontag. The first of these components is included by every other component in bsl, and provides versioning information for the package group. Users may use the bslscm_version facilities to query a particular bsl library for its version information. The second component defines macros that can be used for conditional-compilation based on bsl version information.
bslstl:
The bslstl package provides implementations of certain containers of the C++ standard library using the bslma memory allocation model, algorithms and traits in bslalg and meta-functions in bslmf.
bsltf:
The bsltf package provides a set test types and utilities that operates on those types, which can help simplify, particularly for template, the implementation of test drivers.
bslx:
The bslx package defines (via documentation) the BDEX protocol for externalization (i.e., for an "out stream") and "unexternalization" (i.e., for an "in stream"), and provides concrete byte-array-based stream implementations of each kind of stream, including streams for testing.