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