BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bsl.h
Go to the documentation of this file.
1
/// @file bsl.h
2
///
3
///
4
/// @defgroup bsl Group bsl
5
/// @brief Basic Standard Library (bsl)
6
/// @addtogroup bsl
7
/// @{
8
/// [bsl]: group__bsl.html
9
///
10
/// # Purpose {#bsl-purpose}
11
/// Provide a comprehensive foundation for component-based development.
12
///
13
/// # Mnemonic {#bsl-mnemonic}
14
/// Basic Standard Library (bsl)
15
///
16
/// # Description {#bsl-description}
17
/// The 'bsl' ("Basic Standard Library") package group contains
18
/// various packages that provide platform-specific classes, meta-functions,
19
/// defensive programming mechanisms, a framework for component testing, memory
20
/// allocation protocols and algorithms, and a C++ standard library
21
/// implementation.
22
///
23
/// Note that the C++ standard library is implemented in the 'bsl' namespace
24
/// instead of the standard 'std' namespace. This allow clients to use both the
25
/// native compiler provided C++ standard library together with the Bloomberg
26
/// provided C++ standard library in the same translation unit.
27
///
28
/// The 'bsl' package group is the foundation of the firm-wide BDE library and has
29
/// no dependencies beyond the allowed OS and runtime environment dependencies.
30
///
31
/// ## Hierarchical Synopsis
32
///
33
/// The 'bsl' package group currently has 16 packages having 11 levels of physical
34
/// dependency. The list below shows the hierarchical ordering of the packages.
35
/// The order of packages within each level is not architecturally significant,
36
/// just alphabetical.
37
/// @code
38
/// 11. bslmt
39
/// bslx
40
///
41
/// 10. bslim
42
///
43
/// 9. bsl+bslhdrs
44
///
45
/// 8. bslstp !DEPRECATED!
46
///
47
/// 7. bslstl
48
///
49
/// 6. bslalg
50
///
51
/// 5. bslh
52
/// bsltf
53
///
54
/// 4. bslma
55
///
56
/// 3. bsldoc
57
/// bslmf
58
///
59
/// 2. bsla
60
/// bslscm
61
///
62
/// 1. bslfwd !DEPRECATED!
63
/// bsls
64
/// @endcode
65
/// Note that the 'bsl+stdhdrs' package is only a compatibility layer for
66
/// Bloomberg managed code. It is not an essential package for the rest of the
67
/// BDE libraries (i.e., all other package groups above 'bsl' will compile and
68
/// function without 'bsl+stdhdrs'). This package implements the logic required
69
/// for 'BDE-STL' mode.
70
///
71
/// Note that required source control package 'bslscm' depends on 'bsls'; this
72
/// behavior is unique to 'bsl', although it is temporarily also in 'bde' for
73
/// historic reasons, since logically *every* other package should depend on
74
/// 'bslscm'.
75
///
76
/// ## Package Synopsis
77
///
78
/// 'bsl+bslhdrs':
79
/// Provide a compatibility layer to enable BDE-STL mode in Bloomberg.
80
///
81
/// 'bsla':
82
/// Provide macros for portable use of compiler annotations.
83
///
84
/// 'bslalg':
85
/// Provide algorithms and traits used by the BDE STL implementation.
86
///
87
/// 'bsldoc':
88
/// Provide documentation of terms and concepts used throughout BDE.
89
///
90
/// 'bslfwd': !DEPRECATED!
91
/// Provide compatibility for clients using single-level namespace
92
///
93
/// 'bslh':
94
/// Provide a framework for hashing types using swappable algorithms.
95
///
96
/// 'bslim':
97
/// Provide implementation mechanisms.
98
///
99
/// 'bslma':
100
/// Provide allocators, guards, and other memory-management tools.
101
///
102
/// 'bslmf':
103
/// Provide meta-function versions of useful coding constructs.
104
///
105
/// 'bslmt':
106
/// Support for multi-threading and thread-safe processes.
107
///
108
/// 'bsls':
109
/// Provide system-level utilities for 'bsl'.
110
///
111
/// 'bslscm':
112
/// Provide versioning information for BDE library components.
113
///
114
/// 'bslstl':
115
/// Provide replacement classes for STL constructs.
116
///
117
/// 'bslstp': !DEPRECATED!
118
/// Provide replacement classes (adopted from STLport) for STL.
119
///
120
/// 'bsltf':
121
/// Provide a set of utilities and types to help with testing.
122
///
123
/// 'bslx':
124
/// Define externalization protocols and provide implementations.
125
///
126
/// ## Package Overview
127
///
128
/// This section provides a brief introduction to the packages of the 'bsl'
129
/// package group. Note that several packages, especially at lower levels in the
130
/// physical hierarchy, are primarily intended for use by other packages within
131
/// 'bsl'. See the respective Package Level documents for more details.
132
///
133
/// ### bsl+bslhdrs
134
///
135
/// The {'bsl+bslhdrs'} package provides the 'bsl' version of the standard C++
136
/// library (e.g., 'bsl_vector.h' instead of 'vector', 'bsl_algorithm.h' instead
137
/// of 'algorithm'). Users of 'bsl' can include these headers to obtain the
138
/// corresponding C++ STL functionalities.
139
///
140
/// ### bslalg
141
///
142
/// The {'bslalg'} package provides a variety of lower-level algorithms,
143
/// comparisons, and traits.
144
///
145
/// ### bsldoc
146
///
147
/// The {'bsldoc'} package documents key terminology and concepts used throughout
148
/// BDE documentation. Note that the components in this package consist entirely
149
/// of comments, no code.
150
///
151
/// ### bslh
152
///
153
/// The {'bslh'} package provides standard hashing algorithms and components
154
/// allowing the application of those hashing algorithms to types in a modular
155
/// way.
156
///
157
/// ### bslim
158
///
159
/// The {'bslim'} package provides implementation mechanisms for features that
160
/// must have identical syntax and semantics in many disparate classes.
161
///
162
/// ### bslma
163
///
164
/// {'bslma'} provides memory allocation and related proctor and handle objects.
165
///
166
/// ### bslmf
167
///
168
/// The {'bslmf'} package provides low-level "meta-functions" implementing
169
/// "traits" and other useful properties of types, determined at compile-time.
170
///
171
/// ### bsls
172
///
173
/// The {'bsls'} package provides the needed platform-independent definitions and
174
/// utilities (with platform-specific implementations) so that the rest of the bsl
175
/// library, and all conforming applications within the Development Framework, can
176
/// be written in a truly portable, platform-neutral dialect of C++ -- one having
177
/// dependency on 'bsls', but on no other system-specific services. Among the
178
/// issues dealt with in 'bsls' are hardware, operating system, and compiler
179
/// definitions, "endian-ness" and alignment of type representation in physical
180
/// memory, bit-manipulation utilities, and a uniform interface to system services
181
/// (e.g., timers).
182
///
183
/// ### bslscm
184
///
185
/// The {'bslscm'} package contains only two components, @ref bslscm_version and
186
/// @ref bslscm_versiontag . The first of these components is included by every other
187
/// component in 'bsl', and provides versioning information for the package group.
188
/// Users may use the @ref bslscm_version facilities to query a particular 'bsl'
189
/// library for its version information. The second component defines macros that
190
/// can be used for conditional-compilation based on 'bsl' version information.
191
///
192
/// ### bslstl
193
///
194
/// The {'bslstl'} package provides implementations of certain containers of the
195
/// C++ standard library using the 'bslma' memory allocation model, algorithms and
196
/// traits in 'bslalg' and meta-functions in 'bslmf'.
197
///
198
/// ### bsltf
199
///
200
/// The {'bsltf'} package provides a set test types and utilities that operates on
201
/// those types, which can help simplify, particularly for template, the
202
/// implementation of test drivers.
203
///
204
/// ### bslx
205
///
206
/// The {'bslx'} package defines (via documentation) the BDEX protocol for
207
/// externalization (i.e., for an "out stream") and "unexternalization" (i.e., for
208
/// an "in stream"), and provides concrete byte-array-based stream implementations
209
/// of each kind of stream, including streams for testing.
210
///
211
/// @}
doxygen_input
bde
groups
bsl
doc
bsl.h
Generated by
1.9.8