BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bslalg.h
Go to the documentation of this file.
1
/// @file bslalg.h
2
///
3
///
4
/// @defgroup bslalg Package bslalg
5
/// @brief Basic Standard Library ALgorithms (bslalg)
6
/// @addtogroup bsl
7
/// @{
8
/// @addtogroup bslalg
9
/// @{
10
/// * <a href="#bslalg-purpose"> Purpose</a>
11
/// * <a href="#bslalg-mnemonic"> Mnemonic </a>
12
/// * <a href="#bslalg-description"> Description </a>
13
/// * <a href="#bslalg-hierarchical-synopsis"> Hierarchical Synopsis </a>
14
/// * <a href="#bslalg-component-synopsis"> Component Synopsis </a>
15
///
16
/// # Purpose {#bslalg-purpose}
17
/// Provide algorithms and traits used by the BDE STL implementation.
18
///
19
/// # Mnemonic {#bslalg-mnemonic}
20
/// Basic Standard Library ALgorithms (bslalg)
21
///
22
/// # Description {#bslalg-description}
23
/// This package provides facilities for implementing higher-level
24
/// components (in particular, the standard library containers). The facilities
25
/// fall into three broad classes:
26
///
27
/// * Utilities that provide efficient implementations of primitive operations on
28
/// generic data types (e.g., construction, copy-construction), optimized based
29
/// on the exposed traits of the type (e.g., bitwise-copyable, uses-allocator).
30
///
31
/// * Primitive data types and fundamental algorithms that form the basis of
32
/// standard library containers (e.g., linked lists, hash tables, Red/Black
33
/// trees and deques).
34
///
35
/// * Legacy traits types used to tag user-defined (client) types according to
36
/// properties such as whether they use a memory allocator to supply memory
37
/// resources, have a trivial default constructor, are POD types, etc. These
38
/// traits types have been superseded by the traits in the 'bslmf' package, and
39
/// are implemented in terms of 'bslmf'.
40
///
41
///
42
/// ## Hierarchical Synopsis {#bslalg-hierarchical-synopsis}
43
///
44
/// The 'bslalg' package currently has 44 components having 7 levels of physical
45
/// dependency. The list below shows the hierarchical ordering of the components.
46
/// The order of components within each level is not architecturally significant,
47
/// just alphabetical.
48
/// @code
49
/// 7. bslalg_dequeprimitives
50
/// bslalg_hashtableimputil
51
/// bslalg_rbtreeutil
52
///
53
/// 6. bslalg_arrayprimitives
54
/// bslalg_hashtableanchor
55
///
56
/// 5. bslalg_bidirectionalnode
57
/// bslalg_constructorproxy
58
/// bslalg_dequeiterator
59
///
60
/// 4. bslalg_autoarraymovedestructor
61
/// bslalg_hashtablebucket
62
/// bslalg_scalarprimitives
63
/// bslalg_selecttrait !DEPRECATED!
64
/// bslalg_typetraits !DEPRECATED!
65
///
66
/// 3. bslalg_autoarraydestructor
67
/// bslalg_autoscalardestructor
68
/// bslalg_bidirectionallinklistutil
69
/// bslalg_nothrowmovableutil
70
/// bslalg_rbtreeanchor
71
/// bslalg_typetraitbitwisecopyable !DEPRECATED!
72
/// bslalg_typetraitbitwiseequalitycomparable !DEPRECATED!
73
/// bslalg_typetraitbitwisemoveable !DEPRECATED!
74
/// bslalg_typetraithaspointersemantics !DEPRECATED!
75
/// bslalg_typetraithasstliterators !DEPRECATED!
76
/// bslalg_typetraithastrivialdefaultconstructor !DEPRECATED!
77
/// bslalg_typetraitpair !DEPRECATED!
78
/// bslalg_typetraitusesbslmaallocator !DEPRECATED!
79
///
80
/// 2. bslalg_arraydestructionprimitives
81
/// bslalg_bidirectionallink
82
/// bslalg_containerbase
83
/// bslalg_dequeimputil
84
/// bslalg_functoradapter
85
/// bslalg_hashutil
86
/// bslalg_hasstliterators
87
/// bslalg_hastrait !DEPRECATED!
88
/// bslalg_nothrowmovablewrapper
89
/// bslalg_numericformatterutil
90
/// bslalg_rangecompare
91
/// bslalg_rbtreenode
92
/// bslalg_scalardestructionprimitives !DEPRECATED!
93
/// bslalg_swaputil
94
/// bslalg_synththreewayutil
95
/// bslalg_typetraitnil !DEPRECATED!
96
///
97
/// 1. bslalg_arrayprimitives_cpp03 !PRIVATE!
98
/// bslalg_dequeprimitives_cpp03 !PRIVATE!
99
/// @endcode
100
///
101
/// ## Component Synopsis {#bslalg-component-synopsis}
102
///
103
/// @ref bslalg_arraydestructionprimitives :
104
/// Provide primitive algorithms that destroy arrays.
105
///
106
/// @ref bslalg_arrayprimitives :
107
/// Provide primitive algorithms that operate on arrays.
108
///
109
/// @ref bslalg_arrayprimitives_cpp03 : !PRIVATE!
110
/// Provide C++03 implementation for bslalg_arrayprimitives.h
111
///
112
/// @ref bslalg_autoarraydestructor :
113
/// Provide a proctor for destroying arrays.
114
///
115
/// @ref bslalg_autoarraymovedestructor :
116
/// Provide a proctor for destroying arrays.
117
///
118
/// @ref bslalg_autoscalardestructor :
119
/// Provide a proctor for destroying an object.
120
///
121
/// @ref bslalg_bidirectionallink :
122
/// Provide a basic link type for building doubly-linked lists.
123
///
124
/// @ref bslalg_bidirectionallinklistutil :
125
/// Provide utilities to maintain bidirectional list data structures.
126
///
127
/// @ref bslalg_bidirectionalnode :
128
/// Provide a node holding a value in a doubly-linked list.
129
///
130
/// @ref bslalg_constructorproxy :
131
/// Provide a proxy for constructing and destroying objects.
132
///
133
/// @ref bslalg_containerbase :
134
/// Provide a wrapper for STL allocators, for container use.
135
///
136
/// @ref bslalg_dequeimputil :
137
/// Provide basic parameters and primitive data structures for deques.
138
///
139
/// @ref bslalg_dequeiterator :
140
/// Provide a primitive iterator over deque data structures.
141
///
142
/// @ref bslalg_dequeprimitives :
143
/// Provide primitive algorithms that operate on deques.
144
///
145
/// @ref bslalg_dequeprimitives_cpp03 : !PRIVATE!
146
/// Provide C++03 implementation for bslalg_dequeprimitives.h
147
///
148
/// @ref bslalg_functoradapter :
149
/// Provide an utility that adapts callable objects to functors.
150
///
151
/// @ref bslalg_hashtableanchor :
152
/// Provide a type holding the constituent parts of a hash table.
153
///
154
/// @ref bslalg_hashtablebucket :
155
/// Provide a bucket representation for hash table data structures.
156
///
157
/// @ref bslalg_hashtableimputil :
158
/// Provide algorithms for implementing a hash table.
159
///
160
/// @ref bslalg_hashutil :
161
/// Provide a utility of hash functions.
162
///
163
/// @ref bslalg_hasstliterators :
164
/// Provide a tag type used to detect STL-like iterators traits.
165
///
166
/// @ref bslalg_hastrait : !DEPRECATED!
167
/// Provide a meta-function to detect if a type has a given trait.
168
///
169
/// @ref bslalg_nothrowmovableutil :
170
/// Provide a wrapper that asserts a noexcept move constructor.
171
///
172
/// @ref bslalg_nothrowmovablewrapper :
173
/// Provide a wrapper that asserts a noexcept move constructor.
174
///
175
/// @ref bslalg_numericformatterutil :
176
/// Provide a utility for formatting numbers into strings.
177
///
178
/// @ref bslalg_rangecompare :
179
/// Provide algorithms to compare iterator-ranges of elements.
180
///
181
/// @ref bslalg_rbtreeanchor :
182
/// Encapsulate root, first, and last nodes of a tree with a count.
183
///
184
/// @ref bslalg_rbtreenode :
185
/// Provide a base class for a red-black binary tree node.
186
///
187
/// @ref bslalg_rbtreeutil :
188
/// Provide a suite of primitive algorithms on red-black trees.
189
///
190
/// @ref bslalg_scalardestructionprimitives : !DEPRECATED!
191
/// Provide primitive algorithms that destroy scalars.
192
///
193
/// @ref bslalg_scalarprimitives :
194
/// Provide primitive algorithms that operate on single elements.
195
///
196
/// @ref bslalg_selecttrait : !DEPRECATED!
197
/// Provide a meta-function to select a suitable trait on a type.
198
///
199
/// @ref bslalg_swaputil :
200
/// Provide a simple to use `swap` algorithm.
201
///
202
/// @ref bslalg_synththreewayutil :
203
/// Provide implementation utilities for `operator<=>`.
204
///
205
/// @ref bslalg_typetraitbitwisecopyable : !DEPRECATED!
206
/// Provide a trait to mark classes as bit-wise copyable.
207
///
208
/// @ref bslalg_typetraitbitwiseequalitycomparable : !DEPRECATED!
209
/// Provide a trait to mark classes as bit-wise eq.-comparable.
210
///
211
/// @ref bslalg_typetraitbitwisemoveable : !DEPRECATED!
212
/// Provide a trait to mark classes as bit-wise moveable.
213
///
214
/// @ref bslalg_typetraithaspointersemantics : !DEPRECATED!
215
/// Provide a trait to mark classes as having pointer semantics.
216
///
217
/// @ref bslalg_typetraithasstliterators : !DEPRECATED!
218
/// Provide a trait to mark classes as having STL-like iterators.
219
///
220
/// @ref bslalg_typetraithastrivialdefaultconstructor : !DEPRECATED!
221
/// Provide a trait to mark classes as having a trivial default ctor.
222
///
223
/// @ref bslalg_typetraitnil : !DEPRECATED!
224
/// Provide a trait to mark classes as having no other traits.
225
///
226
/// @ref bslalg_typetraitpair : !DEPRECATED!
227
/// Provide a trait to mark classes as similar to `std::pair`.
228
///
229
/// @ref bslalg_typetraits : !DEPRECATED!
230
/// Provide compile-time traits that can be associated with types.
231
///
232
/// @ref bslalg_typetraitusesbslmaallocator : !DEPRECATED!
233
/// Provide a trait to mark types that use `bslma` allocators.
234
///
235
/// @}
236
/** @} */
doxygen_input
bde
groups
bsl
bslalg
doc
bslalg.h
Generated by
1.9.8