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