BDE 4.14.0 Production release
Loading...
Searching...
No Matches
Group bsl

Modules

 Package bsl+bslhdrs
 Basic Standard Library BSL HeaDerS (bsl+bslhdrs)
 
 Package bsla
 Basic Standard Library Annotations (bsla)
 
 Package bslalg
 Basic Standard Library ALgorithms (bslalg)
 
 Package bsldoc
 Basic Standard Library DOCumentation (bsldoc)
 
 Package bslfwd
 Basic Standard Library System ForWarding Declarations (bslfwd)
 
 Package bslh
 Basic Standard Library Hashing (bslh)
 
 Package bslim
 Basic Standard Library Implementation Mechanisms (bslim)
 
 Package bslma
 Basic Standard Library Memory Allocators (bslma)
 
 Package bslmf
 Basic Standard Library Meta-Functions (bslmf)
 
 Package bslmt
 Basic Standard Library Multi-Threading (bslmt)
 
 Package bsls
 Basic Standard Library System utilities (bsls)
 
 Package bslscm
 Basic Standard Library Source Control Management (bslscm)
 
 Package bslstl
 Basic Standard Library STL (bslstl)
 
 Package bslstp
 Basic Standard Library STlPort types (bslstp)
 
 Package bsltf
 Basic Standard Library Test Facility (bsltf)
 
 Package bslx
 Basic Standard Library eXternalization (bslx)
 

Detailed Description

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
10. bslim
9. bsl+bslhdrs
8. bslstp !DEPRECATED!
7. bslstl
6. bslalg
5. bslh
4. bslma
3. bsldoc
2. bsla
1. bslfwd !DEPRECATED!
Definition bdlb_printmethods.h:283
Definition bdlc_flathashmap.h:1805
Definition bslh_defaulthashalgorithm.h:339
Definition bslim_formatguard.h:120
Definition balxml_encoderoptions.h:68
Definition bdlbb_blob.h:576
Definition bslmt_barrier.h:344
Definition bdlt_iso8601util.h:691
Definition bslscm_version.h:98
Definition bslstl_algorithm.h:82
Definition bslstp_exfunctional.h:323
Definition bsltf_allocargumenttype.h:92
Definition bslx_byteinstream.h:377

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.