C Container Collection (CCC)
Loading...
Searching...
No Matches
private_traits.h
Go to the documentation of this file.
1
23
#ifndef CCC_PRIVATE_TRAITS_H
24
#define CCC_PRIVATE_TRAITS_H
25
26
/* NOLINTBEGIN */
27
#include "../array_tree_map.h"
/* IWYU pragma: keep */
28
#include "../doubly_linked_list.h"
/* IWYU pragma: keep */
29
#include "../flat_bitset.h"
/* IWYU pragma: keep */
30
#include "../flat_buffer.h"
/* IWYU pragma: keep */
31
#include "../flat_double_ended_queue.h"
/* IWYU pragma: keep */
32
#include "../flat_hash_map.h"
/* IWYU pragma: keep */
33
#include "../flat_priority_queue.h"
/* IWYU pragma: keep */
34
#include "../singly_linked_list.h"
/* IWYU pragma: keep */
35
#include "../tree_map.h"
/* IWYU pragma: keep */
36
#include "../types.h"
/* IWYU pragma: keep */
37
/* This directive will need to be detected throughout all trait macros. */
38
#ifdef CCC_SPECIALIZED_ENABLED
39
# include "../specialized/adaptive_map.h"
/* IWYU pragma: keep */
40
# include "../specialized/array_adaptive_map.h"
/* IWYU pragma: keep */
41
# include "../specialized/priority_queue.h"
/* IWYU pragma: keep */
42
#endif
/* CCC_SPECIALIZED_ENABLED */
43
/* NOLINTEND */
44
45
/*==================== Entry/Handle Interface =========================*/
46
47
#ifdef CCC_SPECIALIZED_ENABLED
49
# define CCC_private_swap_entry(container_pointer, swap_arguments...) \
50
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_swap_entry, CCC_Adaptive_map *: CCC_adaptive_map_swap_entry, CCC_Tree_map *: CCC_tree_map_swap_entry)( \
51
(container_pointer), swap_arguments \
52
)
53
#else
55
# define CCC_private_swap_entry(container_pointer, swap_arguments...) \
56
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_swap_entry, CCC_Tree_map *: CCC_tree_map_swap_entry)( \
57
(container_pointer), swap_arguments \
58
)
59
#endif
/* CCC_SPECIALIZED_ENABLED */
60
61
#ifdef CCC_SPECIALIZED_ENABLED
63
# define CCC_private_swap_handle(container_pointer, swap_arguments...) \
64
_Generic((container_pointer), CCC_Array_adaptive_map *: CCC_array_adaptive_map_swap_handle, CCC_Array_tree_map *: CCC_array_tree_map_swap_handle)( \
65
(container_pointer), swap_arguments \
66
)
67
#else
69
# define CCC_private_swap_handle(container_pointer, swap_arguments...) \
70
_Generic((container_pointer), CCC_Array_tree_map *: CCC_array_tree_map_swap_handle)( \
71
(container_pointer), swap_arguments \
72
)
73
#endif
/* CCC_SPECIALIZED_ENABLED */
74
75
#ifdef CCC_SPECIALIZED_ENABLED
77
# define CCC_private_try_insert(container_pointer, try_insert_arguments...) \
78
_Generic((container_pointer), CCC_Array_adaptive_map *: CCC_array_adaptive_map_try_insert, CCC_Array_tree_map *: CCC_array_tree_map_try_insert, CCC_Flat_hash_map *: CCC_flat_hash_map_try_insert, CCC_Adaptive_map *: CCC_adaptive_map_try_insert, CCC_Tree_map *: CCC_tree_map_try_insert)( \
79
(container_pointer), try_insert_arguments \
80
)
81
#else
83
# define CCC_private_try_insert(container_pointer, try_insert_arguments...) \
84
_Generic((container_pointer), CCC_Array_tree_map *: CCC_array_tree_map_try_insert, CCC_Flat_hash_map *: CCC_flat_hash_map_try_insert, CCC_Tree_map *: CCC_tree_map_try_insert)( \
85
(container_pointer), try_insert_arguments \
86
)
87
#endif
/* CCC_SPECIALIZED_ENABLED */
88
89
#ifdef CCC_SPECIALIZED_ENABLED
91
# define CCC_private_insert_or_assign( \
92
container_pointer, insert_or_assign_arguments... \
93
) \
94
_Generic((container_pointer), CCC_Array_adaptive_map *: CCC_array_adaptive_map_insert_or_assign, CCC_Array_tree_map *: CCC_array_tree_map_insert_or_assign, CCC_Flat_hash_map *: CCC_flat_hash_map_insert_or_assign, CCC_Adaptive_map *: CCC_adaptive_map_insert_or_assign, CCC_Tree_map *: CCC_tree_map_insert_or_assign)( \
95
(container_pointer), insert_or_assign_arguments \
96
)
97
#else
99
# define CCC_private_insert_or_assign( \
100
container_pointer, insert_or_assign_arguments... \
101
) \
102
_Generic((container_pointer), CCC_Array_tree_map *: CCC_array_tree_map_insert_or_assign, CCC_Flat_hash_map *: CCC_flat_hash_map_insert_or_assign, CCC_Tree_map *: CCC_tree_map_insert_or_assign)( \
103
(container_pointer), insert_or_assign_arguments \
104
)
105
#endif
/* CCC_SPECIALIZED_ENABLED */
106
107
#ifdef CCC_SPECIALIZED_ENABLED
109
# define CCC_private_remove_key_value( \
110
container_pointer, key_val_container_array_pointer... \
111
) \
112
_Generic((container_pointer), CCC_Array_adaptive_map *: CCC_array_adaptive_map_remove_key_value, CCC_Array_tree_map *: CCC_array_tree_map_remove_key_value, CCC_Flat_hash_map *: CCC_flat_hash_map_remove_key_value, CCC_Adaptive_map *: CCC_adaptive_map_remove_key_value, CCC_Tree_map *: CCC_tree_map_remove_key_value)( \
113
(container_pointer), key_val_container_array_pointer \
114
)
115
#else
117
# define CCC_private_remove_key_value( \
118
container_pointer, key_val_container_array_pointer... \
119
) \
120
_Generic((container_pointer), CCC_Array_tree_map *: CCC_array_tree_map_remove_key_value, CCC_Flat_hash_map *: CCC_flat_hash_map_remove_key_value, CCC_Tree_map *: CCC_tree_map_remove_key_value)( \
121
(container_pointer), key_val_container_array_pointer \
122
)
123
#endif
/* CCC_SPECIALIZED_ENABLED */
124
125
#ifdef CCC_SPECIALIZED_ENABLED
127
# define CCC_private_remove_entry(container_entry_pointer, ...) \
128
_Generic((container_entry_pointer), CCC_Flat_hash_map_entry *: CCC_flat_hash_map_remove_entry, CCC_Adaptive_map_entry *: CCC_adaptive_map_remove_entry, CCC_Tree_map_entry *: CCC_tree_map_remove_entry, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_remove_entry, CCC_Adaptive_map_entry const *: CCC_adaptive_map_remove_entry, CCC_Tree_map_entry const *: CCC_tree_map_remove_entry)( \
129
(container_entry_pointer)__VA_OPT__(, __VA_ARGS__) \
130
)
131
#else
133
# define CCC_private_remove_entry(container_entry_pointer, ...) \
134
_Generic((container_entry_pointer), CCC_Flat_hash_map_entry *: CCC_flat_hash_map_remove_entry, CCC_Tree_map_entry *: CCC_tree_map_remove_entry, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_remove_entry, CCC_Tree_map_entry const *: CCC_tree_map_remove_entry)( \
135
(container_entry_pointer)__VA_OPT__(, __VA_ARGS__) \
136
)
137
#endif
/* CCC_SPECIALIZED_ENABLED */
138
139
#ifdef CCC_SPECIALIZED_ENABLED
141
# define CCC_private_remove_handle(container_array_pointer) \
142
_Generic((container_array_pointer), CCC_Array_adaptive_map_handle *: CCC_array_adaptive_map_remove_handle, CCC_Array_adaptive_map_handle const *: CCC_array_adaptive_map_remove_handle, CCC_Array_tree_map_handle *: CCC_array_tree_map_remove_handle, CCC_Array_tree_map_handle const *: CCC_array_tree_map_remove_handle)( \
143
(container_array_pointer) \
144
)
145
#else
147
# define CCC_private_remove_handle(container_array_pointer) \
148
_Generic((container_array_pointer), CCC_Array_tree_map_handle *: CCC_array_tree_map_remove_handle, CCC_Array_tree_map_handle const *: CCC_array_tree_map_remove_handle)( \
149
(container_array_pointer) \
150
)
151
#endif
/* CCC_SPECIALIZED_ENABLED */
152
153
#ifdef CCC_SPECIALIZED_ENABLED
155
# define CCC_private_entry(container_pointer, key_pointer, ...) \
156
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_entry, CCC_Flat_hash_map const *: CCC_flat_hash_map_entry, CCC_Adaptive_map *: CCC_adaptive_map_entry, CCC_Tree_map *: CCC_tree_map_entry, CCC_Tree_map const *: CCC_tree_map_entry)( \
157
(container_pointer), key_pointer __VA_OPT__(, __VA_ARGS__) \
158
)
159
#else
161
# define CCC_private_entry(container_pointer, key_pointer, ...) \
162
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_entry, CCC_Flat_hash_map const *: CCC_flat_hash_map_entry, CCC_Tree_map *: CCC_tree_map_entry, CCC_Tree_map const *: CCC_tree_map_entry)( \
163
(container_pointer), key_pointer __VA_OPT__(, __VA_ARGS__) \
164
)
165
#endif
/* CCC_SPECIALIZED_ENABLED */
166
167
#ifdef CCC_SPECIALIZED_ENABLED
169
# define CCC_private_handle(container_pointer, key_pointer...) \
170
_Generic((container_pointer), CCC_Array_adaptive_map *: CCC_array_adaptive_map_handle, CCC_Array_tree_map *: CCC_array_tree_map_handle, CCC_Array_tree_map const *: CCC_array_tree_map_handle)( \
171
(container_pointer), key_pointer \
172
)
173
#else
175
# define CCC_private_handle(container_pointer, key_pointer...) \
176
_Generic((container_pointer), CCC_Array_tree_map *: CCC_array_tree_map_handle, CCC_Array_tree_map const *: CCC_array_tree_map_handle)( \
177
(container_pointer), key_pointer \
178
)
179
#endif
/* CCC_SPECIALIZED_ENABLED */
180
181
#ifdef CCC_SPECIALIZED_ENABLED
183
# define CCC_private_and_modify( \
184
container_entry_pointer, modifier_pointer... \
185
) \
186
_Generic((container_entry_pointer), CCC_Flat_hash_map_entry *: CCC_flat_hash_map_and_modify, CCC_Adaptive_map_entry *: CCC_adaptive_map_and_modify, CCC_Array_adaptive_map_handle *: CCC_array_adaptive_map_and_modify, CCC_Tree_map_entry *: CCC_tree_map_and_modify, CCC_Array_tree_map_handle *: CCC_array_tree_map_and_modify, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_and_modify, CCC_Array_tree_map_handle const *: CCC_array_tree_map_and_modify, CCC_Adaptive_map_entry const *: CCC_adaptive_map_and_modify, CCC_Array_adaptive_map_handle const *: CCC_array_adaptive_map_and_modify, CCC_Tree_map_entry const *: CCC_tree_map_and_modify)( \
187
(container_entry_pointer), modifier_pointer \
188
)
189
#else
191
# define CCC_private_and_modify( \
192
container_entry_pointer, modifier_pointer... \
193
) \
194
_Generic((container_entry_pointer), CCC_Flat_hash_map_entry *: CCC_flat_hash_map_and_modify, CCC_Tree_map_entry *: CCC_tree_map_and_modify, CCC_Array_tree_map_handle *: CCC_array_tree_map_and_modify, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_and_modify, CCC_Array_tree_map_handle const *: CCC_array_tree_map_and_modify, CCC_Tree_map_entry const *: CCC_tree_map_and_modify)( \
195
(container_entry_pointer), modifier_pointer \
196
)
197
#endif
/* CCC_SPECIALIZED_ENABLED */
198
199
#ifdef CCC_SPECIALIZED_ENABLED
201
# define CCC_private_insert_entry( \
202
container_entry_pointer, key_val_container_array_pointer... \
203
) \
204
_Generic((container_entry_pointer), CCC_Flat_hash_map_entry *: CCC_flat_hash_map_insert_entry, CCC_Adaptive_map_entry *: CCC_adaptive_map_insert_entry, CCC_Tree_map_entry *: CCC_tree_map_insert_entry, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_insert_entry, CCC_Adaptive_map_entry const *: CCC_adaptive_map_insert_entry, CCC_Tree_map_entry const *: CCC_tree_map_insert_entry)( \
205
(container_entry_pointer), key_val_container_array_pointer \
206
)
207
#else
209
# define CCC_private_insert_entry( \
210
container_entry_pointer, key_val_container_array_pointer... \
211
) \
212
_Generic((container_entry_pointer), CCC_Flat_hash_map_entry *: CCC_flat_hash_map_insert_entry, CCC_Tree_map_entry *: CCC_tree_map_insert_entry, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_insert_entry, CCC_Tree_map_entry const *: CCC_tree_map_insert_entry)( \
213
(container_entry_pointer), key_val_container_array_pointer \
214
)
215
#endif
/* CCC_SPECIALIZED_ENABLED */
216
217
#ifdef CCC_SPECIALIZED_ENABLED
219
# define CCC_private_insert_handle( \
220
container_array_pointer, key_val_container_array_pointer... \
221
) \
222
_Generic((container_array_pointer), CCC_Array_adaptive_map_handle *: CCC_array_adaptive_map_insert_handle, CCC_Array_adaptive_map_handle const *: CCC_array_adaptive_map_insert_handle, CCC_Array_tree_map_handle *: CCC_array_tree_map_insert_handle, CCC_Array_tree_map_handle const *: CCC_array_tree_map_insert_handle)( \
223
(container_array_pointer), key_val_container_array_pointer \
224
)
225
#else
227
# define CCC_private_insert_handle( \
228
container_array_pointer, key_val_container_array_pointer... \
229
) \
230
_Generic((container_array_pointer), CCC_Array_tree_map_handle *: CCC_array_tree_map_insert_handle, CCC_Array_tree_map_handle const *: CCC_array_tree_map_insert_handle)( \
231
(container_array_pointer), key_val_container_array_pointer \
232
)
233
#endif
/* CCC_SPECIALIZED_ENABLED */
234
235
#ifdef CCC_SPECIALIZED_ENABLED
237
# define CCC_private_or_insert( \
238
container_entry_pointer, key_val_container_array_pointer... \
239
) \
240
_Generic((container_entry_pointer), CCC_Flat_hash_map_entry *: CCC_flat_hash_map_or_insert, CCC_Adaptive_map_entry *: CCC_adaptive_map_or_insert, CCC_Array_adaptive_map_handle *: CCC_array_adaptive_map_or_insert, CCC_Tree_map_entry *: CCC_tree_map_or_insert, CCC_Array_tree_map_handle *: CCC_array_tree_map_or_insert, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_or_insert, CCC_Adaptive_map_entry const *: CCC_adaptive_map_or_insert, CCC_Array_tree_map_handle const *: CCC_array_tree_map_or_insert, CCC_Array_adaptive_map_handle const *: CCC_array_adaptive_map_or_insert, CCC_Tree_map_entry const *: CCC_tree_map_or_insert)( \
241
(container_entry_pointer), key_val_container_array_pointer \
242
)
243
#else
245
# define CCC_private_or_insert( \
246
container_entry_pointer, key_val_container_array_pointer... \
247
) \
248
_Generic((container_entry_pointer), CCC_Flat_hash_map_entry *: CCC_flat_hash_map_or_insert, CCC_Tree_map_entry *: CCC_tree_map_or_insert, CCC_Array_tree_map_handle *: CCC_array_tree_map_or_insert, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_or_insert, CCC_Array_tree_map_handle const *: CCC_array_tree_map_or_insert, CCC_Tree_map_entry const *: CCC_tree_map_or_insert)( \
249
(container_entry_pointer), key_val_container_array_pointer \
250
)
251
#endif
/* CCC_SPECIALIZED_ENABLED */
252
253
#ifdef CCC_SPECIALIZED_ENABLED
255
# define CCC_private_unwrap(container_entry_pointer) \
256
_Generic((container_entry_pointer), CCC_Entry *: CCC_entry_unwrap, CCC_Entry const *: CCC_entry_unwrap, CCC_Handle *: CCC_handle_unwrap, CCC_Handle const *: CCC_handle_unwrap, CCC_Flat_hash_map_entry *: CCC_flat_hash_map_unwrap, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_unwrap, CCC_Adaptive_map_entry *: CCC_adaptive_map_unwrap, CCC_Adaptive_map_entry const *: CCC_adaptive_map_unwrap, CCC_Array_adaptive_map_handle *: CCC_array_adaptive_map_unwrap, CCC_Array_adaptive_map_handle const *: CCC_array_adaptive_map_unwrap, CCC_Array_tree_map_handle *: CCC_array_tree_map_unwrap, CCC_Array_tree_map_handle const *: CCC_array_tree_map_unwrap, CCC_Tree_map_entry *: CCC_tree_map_unwrap, CCC_Tree_map_entry const *: CCC_tree_map_unwrap)( \
257
(container_entry_pointer) \
258
)
259
#else
261
# define CCC_private_unwrap(container_entry_pointer) \
262
_Generic((container_entry_pointer), CCC_Entry *: CCC_entry_unwrap, CCC_Entry const *: CCC_entry_unwrap, CCC_Handle *: CCC_handle_unwrap, CCC_Handle const *: CCC_handle_unwrap, CCC_Flat_hash_map_entry *: CCC_flat_hash_map_unwrap, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_unwrap, CCC_Array_tree_map_handle *: CCC_array_tree_map_unwrap, CCC_Array_tree_map_handle const *: CCC_array_tree_map_unwrap, CCC_Tree_map_entry *: CCC_tree_map_unwrap, CCC_Tree_map_entry const *: CCC_tree_map_unwrap)( \
263
(container_entry_pointer) \
264
)
265
#endif
/* CCC_SPECIALIZED_ENABLED */
266
267
#ifdef CCC_SPECIALIZED_ENABLED
269
# define CCC_private_occupied(container_entry_pointer) \
270
_Generic((container_entry_pointer), CCC_Entry *: CCC_entry_occupied, CCC_Entry const *: CCC_entry_occupied, CCC_Handle *: CCC_handle_occupied, CCC_Handle const *: CCC_handle_occupied, CCC_Flat_hash_map_entry *: CCC_flat_hash_map_occupied, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_occupied, CCC_Adaptive_map_entry *: CCC_adaptive_map_occupied, CCC_Adaptive_map_entry const *: CCC_adaptive_map_occupied, CCC_Array_adaptive_map_handle *: CCC_array_adaptive_map_occupied, CCC_Array_adaptive_map_handle const *: CCC_array_adaptive_map_occupied, CCC_Array_tree_map_handle *: CCC_array_tree_map_occupied, CCC_Array_tree_map_handle const *: CCC_array_tree_map_occupied, CCC_Tree_map_entry *: CCC_tree_map_occupied, CCC_Tree_map_entry const *: CCC_tree_map_occupied)( \
271
(container_entry_pointer) \
272
)
273
#else
275
# define CCC_private_occupied(container_entry_pointer) \
276
_Generic((container_entry_pointer), CCC_Entry *: CCC_entry_occupied, CCC_Entry const *: CCC_entry_occupied, CCC_Handle *: CCC_handle_occupied, CCC_Handle const *: CCC_handle_occupied, CCC_Flat_hash_map_entry *: CCC_flat_hash_map_occupied, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_occupied, CCC_Array_tree_map_handle *: CCC_array_tree_map_occupied, CCC_Array_tree_map_handle const *: CCC_array_tree_map_occupied, CCC_Tree_map_entry *: CCC_tree_map_occupied, CCC_Tree_map_entry const *: CCC_tree_map_occupied)( \
277
(container_entry_pointer) \
278
)
279
#endif
/* CCC_SPECIALIZED_ENABLED */
280
281
#ifdef CCC_SPECIALIZED_ENABLED
283
# define CCC_private_insert_error(container_entry_pointer) \
284
_Generic((container_entry_pointer), CCC_Entry *: CCC_entry_insert_error, CCC_Entry const *: CCC_entry_insert_error, CCC_Handle *: CCC_handle_insert_error, CCC_Handle const *: CCC_handle_insert_error, CCC_Flat_hash_map_entry *: CCC_flat_hash_map_insert_error, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_insert_error, CCC_Adaptive_map_entry *: CCC_adaptive_map_insert_error, CCC_Adaptive_map_entry const *: CCC_adaptive_map_insert_error, CCC_Array_adaptive_map_handle *: CCC_array_adaptive_map_insert_error, CCC_Array_adaptive_map_handle const *: CCC_array_adaptive_map_insert_error, CCC_Array_tree_map_handle *: CCC_array_tree_map_insert_error, CCC_Array_tree_map_handle const *: CCC_array_tree_map_insert_error, CCC_Tree_map_entry *: CCC_tree_map_insert_error, CCC_Tree_map_entry const *: CCC_tree_map_insert_error)( \
285
(container_entry_pointer) \
286
)
287
#else
289
# define CCC_private_insert_error(container_entry_pointer) \
290
_Generic((container_entry_pointer), CCC_Entry *: CCC_entry_insert_error, CCC_Entry const *: CCC_entry_insert_error, CCC_Handle *: CCC_handle_insert_error, CCC_Handle const *: CCC_handle_insert_error, CCC_Flat_hash_map_entry *: CCC_flat_hash_map_insert_error, CCC_Flat_hash_map_entry const *: CCC_flat_hash_map_insert_error, CCC_Array_tree_map_handle *: CCC_array_tree_map_insert_error, CCC_Array_tree_map_handle const *: CCC_array_tree_map_insert_error, CCC_Tree_map_entry *: CCC_tree_map_insert_error, CCC_Tree_map_entry const *: CCC_tree_map_insert_error)( \
291
(container_entry_pointer) \
292
)
293
#endif
/* CCC_SPECIALIZED_ENABLED */
294
295
/*====================== Misc Search Interface ===========================*/
296
297
#ifdef CCC_SPECIALIZED_ENABLED
299
# define CCC_private_get_key_value(container_pointer, key_pointer...) \
300
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_get_key_value, CCC_Flat_hash_map const *: CCC_flat_hash_map_get_key_value, CCC_Adaptive_map *: CCC_adaptive_map_get_key_value, CCC_Array_adaptive_map *: CCC_array_adaptive_map_get_key_value, CCC_Array_tree_map *: CCC_array_tree_map_get_key_value, CCC_Array_tree_map const *: CCC_array_tree_map_get_key_value, CCC_Tree_map *: CCC_tree_map_get_key_value, CCC_Tree_map const *: CCC_tree_map_get_key_value)( \
301
(container_pointer), key_pointer \
302
)
303
#else
305
# define CCC_private_get_key_value(container_pointer, key_pointer...) \
306
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_get_key_value, CCC_Flat_hash_map const *: CCC_flat_hash_map_get_key_value, CCC_Array_tree_map *: CCC_array_tree_map_get_key_value, CCC_Array_tree_map const *: CCC_array_tree_map_get_key_value, CCC_Tree_map *: CCC_tree_map_get_key_value, CCC_Tree_map const *: CCC_tree_map_get_key_value)( \
307
(container_pointer), key_pointer \
308
)
309
#endif
/* CCC_SPECIALIZED_ENABLED */
310
311
#ifdef CCC_SPECIALIZED_ENABLED
313
# define CCC_private_contains(container_pointer, key_pointer...) \
314
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_contains, CCC_Flat_hash_map const *: CCC_flat_hash_map_contains, CCC_Adaptive_map *: CCC_adaptive_map_contains, CCC_Array_adaptive_map *: CCC_array_adaptive_map_contains, CCC_Array_tree_map *: CCC_array_tree_map_contains, CCC_Array_tree_map const *: CCC_array_tree_map_contains, CCC_Tree_map *: CCC_tree_map_contains, CCC_Tree_map const *: CCC_tree_map_contains)( \
315
(container_pointer), key_pointer \
316
)
317
#else
319
# define CCC_private_contains(container_pointer, key_pointer...) \
320
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_contains, CCC_Flat_hash_map const *: CCC_flat_hash_map_contains, CCC_Array_tree_map *: CCC_array_tree_map_contains, CCC_Array_tree_map const *: CCC_array_tree_map_contains, CCC_Tree_map *: CCC_tree_map_contains, CCC_Tree_map const *: CCC_tree_map_contains)( \
321
(container_pointer), key_pointer \
322
)
323
#endif
/* CCC_SPECIALIZED_ENABLED */
324
325
/*================ Sequential Containers Interface =====================*/
326
327
#ifdef CCC_SPECIALIZED_ENABLED
329
# define CCC_private_push(container_pointer, container_array_pointer...) \
330
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_push, CCC_Priority_queue *: CCC_priority_queue_push)( \
331
(container_pointer), container_array_pointer \
332
)
333
#else
335
# define CCC_private_push(container_pointer, container_array_pointer...) \
336
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_push)( \
337
(container_pointer), container_array_pointer \
338
)
339
#endif
/* CCC_SPECIALIZED_ENABLED */
340
342
#define CCC_private_push_back(container_pointer, container_array_pointer...) \
343
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_push_back, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_push_back, CCC_Doubly_linked_list *: CCC_doubly_linked_list_push_back, CCC_Flat_buffer *: CCC_flat_buffer_push_back)( \
344
(container_pointer), container_array_pointer \
345
)
346
348
#define CCC_private_push_front(container_pointer, container_array_pointer...) \
349
_Generic((container_pointer), CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_push_front, CCC_Doubly_linked_list *: CCC_doubly_linked_list_push_front, CCC_Singly_linked_list *: CCC_singly_linked_list_push_front)( \
350
(container_pointer), container_array_pointer \
351
)
352
353
#ifdef CCC_SPECIALIZED_ENABLED
355
# define CCC_private_pop(container_pointer, ...) \
356
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_pop, CCC_Priority_queue *: CCC_priority_queue_pop)( \
357
(container_pointer)__VA_OPT__(, __VA_ARGS__) \
358
)
359
#else
361
# define CCC_private_pop(container_pointer, ...) \
362
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_pop)( \
363
(container_pointer)__VA_OPT__(, __VA_ARGS__) \
364
)
365
#endif
/* CCC_SPECIALIZED_ENABLED */
366
368
#define CCC_private_pop_front(container_pointer, ...) \
369
_Generic((container_pointer), CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_pop_front, CCC_Doubly_linked_list *: CCC_doubly_linked_list_pop_front, CCC_Singly_linked_list *: CCC_singly_linked_list_pop_front)( \
370
(container_pointer)__VA_OPT__(, __VA_ARGS__) \
371
)
372
374
#define CCC_private_pop_back(container_pointer, ...) \
375
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_pop_back, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_pop_back, CCC_Doubly_linked_list *: CCC_doubly_linked_list_pop_back, CCC_Flat_buffer *: CCC_flat_buffer_pop_back)( \
376
(container_pointer)__VA_OPT__(, __VA_ARGS__) \
377
)
378
379
#ifdef CCC_SPECIALIZED_ENABLED
381
# define CCC_private_front(container_pointer) \
382
_Generic((container_pointer), CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_front, CCC_Doubly_linked_list *: CCC_doubly_linked_list_front, CCC_Flat_priority_queue *: CCC_flat_priority_queue_front, CCC_Priority_queue *: CCC_priority_queue_front, CCC_Singly_linked_list *: CCC_singly_linked_list_front, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_front, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_front, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_front, CCC_Priority_queue const *: CCC_priority_queue_front, CCC_Singly_linked_list const *: CCC_singly_linked_list_front)( \
383
(container_pointer) \
384
)
385
#else
387
# define CCC_private_front(container_pointer) \
388
_Generic((container_pointer), CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_front, CCC_Doubly_linked_list *: CCC_doubly_linked_list_front, CCC_Flat_priority_queue *: CCC_flat_priority_queue_front, CCC_Singly_linked_list *: CCC_singly_linked_list_front, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_front, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_front, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_front, CCC_Singly_linked_list const *: CCC_singly_linked_list_front)( \
389
(container_pointer) \
390
)
391
#endif
/* CCC_SPECIALIZED_ENABLED */
392
394
#define CCC_private_back(container_pointer) \
395
_Generic((container_pointer), CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_back, CCC_Doubly_linked_list *: CCC_doubly_linked_list_back, CCC_Flat_buffer *: CCC_flat_buffer_back, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_back, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_back, CCC_Flat_buffer const *: CCC_flat_buffer_back)( \
396
(container_pointer) \
397
)
398
399
/*================ Priority Queue Update Interface =====================*/
400
401
#ifdef CCC_SPECIALIZED_ENABLED
403
# define CCC_private_update(container_pointer, update_arguments...) \
404
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_update, CCC_Priority_queue *: CCC_priority_queue_update)( \
405
(container_pointer), update_arguments \
406
)
407
#else
409
# define CCC_private_update(container_pointer, update_arguments...) \
410
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_update)( \
411
(container_pointer), update_arguments \
412
)
413
#endif
/* CCC_SPECIALIZED_ENABLED */
414
415
#ifdef CCC_SPECIALIZED_ENABLED
417
# define CCC_private_increase(container_pointer, increase_arguments...) \
418
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_increase, CCC_Priority_queue *: CCC_priority_queue_increase)( \
419
(container_pointer), increase_arguments \
420
)
421
#else
423
# define CCC_private_increase(container_pointer, increase_arguments...) \
424
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_increase)( \
425
(container_pointer), increase_arguments \
426
)
427
#endif
/* CCC_SPECIALIZED_ENABLED */
428
429
#ifdef CCC_SPECIALIZED_ENABLED
431
# define CCC_private_decrease(container_pointer, decrease_arguments...) \
432
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_decrease, CCC_Priority_queue *: CCC_priority_queue_decrease)( \
433
(container_pointer), decrease_arguments \
434
)
435
#else
437
# define CCC_private_decrease(container_pointer, decrease_arguments...) \
438
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_decrease)( \
439
(container_pointer), decrease_arguments \
440
)
441
#endif
/* CCC_SPECIALIZED_ENABLED */
442
443
#ifdef CCC_SPECIALIZED_ENABLED
445
# define CCC_private_extract(container_pointer, container_array_pointer...) \
446
_Generic((container_pointer), CCC_Doubly_linked_list *: CCC_doubly_linked_list_extract, CCC_Singly_linked_list *: CCC_singly_linked_list_extract, CCC_Priority_queue *: CCC_priority_queue_extract)( \
447
(container_pointer), container_array_pointer \
448
)
449
#else
451
# define CCC_private_extract(container_pointer, container_array_pointer...) \
452
_Generic((container_pointer), CCC_Doubly_linked_list *: CCC_doubly_linked_list_extract, CCC_Singly_linked_list *: CCC_singly_linked_list_extract)( \
453
(container_pointer), container_array_pointer \
454
)
455
#endif
/* CCC_SPECIALIZED_ENABLED */
456
458
#define CCC_private_erase(container_pointer, container_array_pointer...) \
459
_Generic((container_pointer), CCC_Flat_priority_queue *: CCC_flat_priority_queue_erase)( \
460
(container_pointer), container_array_pointer \
461
)
462
464
#define CCC_private_extract_range( \
465
container_pointer, container_array_begin_end_pointer... \
466
) \
467
_Generic((container_pointer), CCC_Doubly_linked_list *: CCC_doubly_linked_list_extract_range, CCC_Singly_linked_list *: CCC_singly_linked_list_extract_range)( \
468
(container_pointer), container_array_begin_end_pointer \
469
)
470
471
/*=================== Iterators Interface ==============================*/
472
473
#ifdef CCC_SPECIALIZED_ENABLED
475
# define CCC_private_begin(container_pointer) \
476
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_begin, CCC_Flat_hash_map *: CCC_flat_hash_map_begin, CCC_Adaptive_map *: CCC_adaptive_map_begin, CCC_Array_adaptive_map *: CCC_array_adaptive_map_begin, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_begin, CCC_Singly_linked_list *: CCC_singly_linked_list_begin, CCC_Doubly_linked_list *: CCC_doubly_linked_list_begin, CCC_Tree_map *: CCC_tree_map_begin, CCC_Array_tree_map *: CCC_array_tree_map_begin, CCC_Flat_buffer const *: CCC_flat_buffer_begin, CCC_Flat_hash_map const *: CCC_flat_hash_map_begin, CCC_Adaptive_map const *: CCC_adaptive_map_begin, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_begin, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_begin, CCC_Singly_linked_list const *: CCC_singly_linked_list_begin, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_begin, CCC_Array_tree_map const *: CCC_array_tree_map_begin, CCC_Tree_map const *: CCC_tree_map_begin)( \
477
(container_pointer) \
478
)
479
#else
481
# define CCC_private_begin(container_pointer) \
482
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_begin, CCC_Flat_hash_map *: CCC_flat_hash_map_begin, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_begin, CCC_Singly_linked_list *: CCC_singly_linked_list_begin, CCC_Doubly_linked_list *: CCC_doubly_linked_list_begin, CCC_Tree_map *: CCC_tree_map_begin, CCC_Array_tree_map *: CCC_array_tree_map_begin, CCC_Flat_buffer const *: CCC_flat_buffer_begin, CCC_Flat_hash_map const *: CCC_flat_hash_map_begin, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_begin, CCC_Singly_linked_list const *: CCC_singly_linked_list_begin, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_begin, CCC_Array_tree_map const *: CCC_array_tree_map_begin, CCC_Tree_map const *: CCC_tree_map_begin)( \
483
(container_pointer) \
484
)
485
#endif
/* CCC_SPECIALIZED_ENABLED */
486
487
#ifdef CCC_SPECIALIZED_ENABLED
489
# define CCC_private_reverse_begin(container_pointer) \
490
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_reverse_begin, CCC_Adaptive_map *: CCC_adaptive_map_reverse_begin, CCC_Array_adaptive_map *: CCC_array_adaptive_map_reverse_begin, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_reverse_begin, CCC_Doubly_linked_list *: CCC_doubly_linked_list_reverse_begin, CCC_Tree_map *: CCC_tree_map_reverse_begin, CCC_Array_tree_map *: CCC_array_tree_map_reverse_begin, CCC_Flat_buffer const *: CCC_flat_buffer_reverse_begin, CCC_Adaptive_map const *: CCC_adaptive_map_reverse_begin, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_reverse_begin, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_reverse_begin, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_reverse_begin, CCC_Array_tree_map const *: CCC_array_tree_map_reverse_begin, CCC_Tree_map const *: CCC_tree_map_reverse_begin)( \
491
(container_pointer) \
492
)
493
#else
495
# define CCC_private_reverse_begin(container_pointer) \
496
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_reverse_begin, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_reverse_begin, CCC_Doubly_linked_list *: CCC_doubly_linked_list_reverse_begin, CCC_Tree_map *: CCC_tree_map_reverse_begin, CCC_Array_tree_map *: CCC_array_tree_map_reverse_begin, CCC_Flat_buffer const *: CCC_flat_buffer_reverse_begin, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_reverse_begin, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_reverse_begin, CCC_Array_tree_map const *: CCC_array_tree_map_reverse_begin, CCC_Tree_map const *: CCC_tree_map_reverse_begin)( \
497
(container_pointer) \
498
)
499
#endif
/* CCC_SPECIALIZED_ENABLED */
500
501
#ifdef CCC_SPECIALIZED_ENABLED
503
# define CCC_private_next(container_pointer, void_iterator_pointer) \
504
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_next, CCC_Flat_hash_map *: CCC_flat_hash_map_next, CCC_Adaptive_map *: CCC_adaptive_map_next, CCC_Array_adaptive_map *: CCC_array_adaptive_map_next, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_next, CCC_Singly_linked_list *: CCC_singly_linked_list_next, CCC_Doubly_linked_list *: CCC_doubly_linked_list_next, CCC_Tree_map *: CCC_tree_map_next, CCC_Array_tree_map *: CCC_array_tree_map_next, CCC_Flat_buffer const *: CCC_flat_buffer_next, CCC_Flat_hash_map const *: CCC_flat_hash_map_next, CCC_Adaptive_map const *: CCC_adaptive_map_next, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_next, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_next, CCC_Singly_linked_list const *: CCC_singly_linked_list_next, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_next, CCC_Array_tree_map const *: CCC_array_tree_map_next, CCC_Tree_map const *: CCC_tree_map_next)( \
505
(container_pointer), (void_iterator_pointer) \
506
)
507
#else
509
# define CCC_private_next(container_pointer, void_iterator_pointer) \
510
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_next, CCC_Flat_hash_map *: CCC_flat_hash_map_next, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_next, CCC_Singly_linked_list *: CCC_singly_linked_list_next, CCC_Doubly_linked_list *: CCC_doubly_linked_list_next, CCC_Tree_map *: CCC_tree_map_next, CCC_Array_tree_map *: CCC_array_tree_map_next, CCC_Flat_buffer const *: CCC_flat_buffer_next, CCC_Flat_hash_map const *: CCC_flat_hash_map_next, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_next, CCC_Singly_linked_list const *: CCC_singly_linked_list_next, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_next, CCC_Array_tree_map const *: CCC_array_tree_map_next, CCC_Tree_map const *: CCC_tree_map_next)( \
511
(container_pointer), (void_iterator_pointer) \
512
)
513
#endif
/* CCC_SPECIALIZED_ENABLED */
514
515
#ifdef CCC_SPECIALIZED_ENABLED
517
# define CCC_private_reverse_next(container_pointer, void_iterator_pointer) \
518
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_reverse_next, CCC_Adaptive_map *: CCC_adaptive_map_reverse_next, CCC_Array_adaptive_map *: CCC_array_adaptive_map_reverse_next, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_reverse_next, CCC_Doubly_linked_list *: CCC_doubly_linked_list_reverse_next, CCC_Tree_map *: CCC_tree_map_reverse_next, CCC_Array_tree_map *: CCC_array_tree_map_reverse_next, CCC_Flat_buffer const *: CCC_flat_buffer_reverse_next, CCC_Adaptive_map const *: CCC_adaptive_map_reverse_next, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_reverse_next, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_reverse_next, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_reverse_next, CCC_Array_tree_map const *: CCC_array_tree_map_reverse_next, CCC_Tree_map const *: CCC_tree_map_reverse_next)( \
519
(container_pointer), (void_iterator_pointer) \
520
)
521
#else
523
# define CCC_private_reverse_next(container_pointer, void_iterator_pointer) \
524
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_reverse_next, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_reverse_next, CCC_Doubly_linked_list *: CCC_doubly_linked_list_reverse_next, CCC_Tree_map *: CCC_tree_map_reverse_next, CCC_Array_tree_map *: CCC_array_tree_map_reverse_next, CCC_Flat_buffer const *: CCC_flat_buffer_reverse_next, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_reverse_next, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_reverse_next, CCC_Array_tree_map const *: CCC_array_tree_map_reverse_next, CCC_Tree_map const *: CCC_tree_map_reverse_next)( \
525
(container_pointer), (void_iterator_pointer) \
526
)
527
#endif
/* CCC_SPECIALIZED_ENABLED */
528
529
#ifdef CCC_SPECIALIZED_ENABLED
531
# define CCC_private_end(container_pointer) \
532
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_end, CCC_Flat_hash_map *: CCC_flat_hash_map_end, CCC_Adaptive_map *: CCC_adaptive_map_end, CCC_Array_adaptive_map *: CCC_array_adaptive_map_end, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_end, CCC_Singly_linked_list *: CCC_singly_linked_list_end, CCC_Doubly_linked_list *: CCC_doubly_linked_list_end, CCC_Tree_map *: CCC_tree_map_end, CCC_Array_tree_map *: CCC_array_tree_map_end, CCC_Flat_buffer const *: CCC_flat_buffer_end, CCC_Flat_hash_map const *: CCC_flat_hash_map_end, CCC_Adaptive_map const *: CCC_adaptive_map_end, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_end, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_end, CCC_Singly_linked_list const *: CCC_singly_linked_list_end, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_end, CCC_Array_tree_map const *: CCC_array_tree_map_end, CCC_Tree_map const *: CCC_tree_map_end)( \
533
(container_pointer) \
534
)
535
#else
537
# define CCC_private_end(container_pointer) \
538
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_end, CCC_Flat_hash_map *: CCC_flat_hash_map_end, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_end, CCC_Singly_linked_list *: CCC_singly_linked_list_end, CCC_Doubly_linked_list *: CCC_doubly_linked_list_end, CCC_Tree_map *: CCC_tree_map_end, CCC_Array_tree_map *: CCC_array_tree_map_end, CCC_Flat_buffer const *: CCC_flat_buffer_end, CCC_Flat_hash_map const *: CCC_flat_hash_map_end, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_end, CCC_Singly_linked_list const *: CCC_singly_linked_list_end, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_end, CCC_Array_tree_map const *: CCC_array_tree_map_end, CCC_Tree_map const *: CCC_tree_map_end)( \
539
(container_pointer) \
540
)
541
#endif
/* CCC_SPECIALIZED_ENABLED */
542
543
#ifdef CCC_SPECIALIZED_ENABLED
545
# define CCC_private_reverse_end(container_pointer) \
546
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_reverse_end, CCC_Adaptive_map *: CCC_adaptive_map_reverse_end, CCC_Array_adaptive_map *: CCC_array_adaptive_map_reverse_end, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_reverse_end, CCC_Doubly_linked_list *: CCC_doubly_linked_list_reverse_end, CCC_Tree_map *: CCC_tree_map_reverse_end, CCC_Array_tree_map *: CCC_array_tree_map_reverse_end, CCC_Flat_buffer const *: CCC_flat_buffer_reverse_end, CCC_Adaptive_map const *: CCC_adaptive_map_reverse_end, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_reverse_end, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_reverse_end, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_reverse_end, CCC_Array_tree_map const *: CCC_array_tree_map_reverse_end, CCC_Tree_map const *: CCC_tree_map_reverse_end)( \
547
(container_pointer) \
548
)
549
#else
551
# define CCC_private_reverse_end(container_pointer) \
552
_Generic((container_pointer), CCC_Flat_buffer *: CCC_flat_buffer_reverse_end, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_reverse_end, CCC_Doubly_linked_list *: CCC_doubly_linked_list_reverse_end, CCC_Tree_map *: CCC_tree_map_reverse_end, CCC_Array_tree_map *: CCC_array_tree_map_reverse_end, CCC_Flat_buffer const *: CCC_flat_buffer_reverse_end, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_reverse_end, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_reverse_end, CCC_Array_tree_map const *: CCC_array_tree_map_reverse_end, CCC_Tree_map const *: CCC_tree_map_reverse_end)( \
553
(container_pointer) \
554
)
555
#endif
/* CCC_SPECIALIZED_ENABLED */
556
557
#ifdef CCC_SPECIALIZED_ENABLED
559
# define CCC_private_equal_range( \
560
container_pointer, begin_and_end_key_pointer... \
561
) \
562
_Generic((container_pointer), CCC_Adaptive_map *: CCC_adaptive_map_equal_range, CCC_Array_adaptive_map *: CCC_array_adaptive_map_equal_range, CCC_Array_tree_map *: CCC_array_tree_map_equal_range, CCC_Array_tree_map const *: CCC_array_tree_map_equal_range, CCC_Tree_map *: CCC_tree_map_equal_range, CCC_Tree_map const *: CCC_tree_map_equal_range)( \
563
(container_pointer), begin_and_end_key_pointer \
564
)
565
#else
567
# define CCC_private_equal_range( \
568
container_pointer, begin_and_end_key_pointer... \
569
) \
570
_Generic((container_pointer), CCC_Array_tree_map *: CCC_array_tree_map_equal_range, CCC_Array_tree_map const *: CCC_array_tree_map_equal_range, CCC_Tree_map *: CCC_tree_map_equal_range, CCC_Tree_map const *: CCC_tree_map_equal_range)( \
571
(container_pointer), begin_and_end_key_pointer \
572
)
573
#endif
/* CCC_SPECIALIZED_ENABLED */
574
575
#ifdef CCC_SPECIALIZED_ENABLED
577
# define CCC_private_equal_range_reverse( \
578
container_pointer, reverse_begin_and_reverse_end_key_pointer... \
579
) \
580
_Generic((container_pointer), CCC_Adaptive_map *: CCC_adaptive_map_equal_range_reverse, CCC_Array_adaptive_map *: CCC_array_adaptive_map_equal_range_reverse, CCC_Array_tree_map *: CCC_array_tree_map_equal_range_reverse, CCC_Array_tree_map const *: CCC_array_tree_map_equal_range_reverse, CCC_Tree_map *: CCC_tree_map_equal_range_reverse, CCC_Tree_map const *: CCC_tree_map_equal_range_reverse)( \
581
(container_pointer), reverse_begin_and_reverse_end_key_pointer \
582
)
583
#else
585
# define CCC_private_equal_range_reverse( \
586
container_pointer, reverse_begin_and_reverse_end_key_pointer... \
587
) \
588
_Generic((container_pointer), CCC_Array_tree_map *: CCC_array_tree_map_equal_range_reverse, CCC_Array_tree_map const *: CCC_array_tree_map_equal_range_reverse, CCC_Tree_map *: CCC_tree_map_equal_range_reverse, CCC_Tree_map const *: CCC_tree_map_equal_range_reverse)( \
589
(container_pointer), reverse_begin_and_reverse_end_key_pointer \
590
)
591
#endif
/* CCC_SPECIALIZED_ENABLED */
592
597
#ifdef range_begin
598
# undef range_begin
599
#endif
600
#ifdef range_end
601
# undef range_end
602
#endif
603
#ifdef range_reverse_begin
604
# undef range_reverse_begin
605
#endif
606
#ifdef range_reverse_end
607
# undef range_reverse_end
608
#endif
609
611
#define CCC_private_range_begin(range_pointer) \
612
_Generic((range_pointer), CCC_Range *: CCC_range_begin, CCC_Range const *: CCC_range_begin, CCC_Handle_range *: CCC_handle_range_begin, CCC_Handle_range const *: CCC_handle_range_begin)( \
613
(range_pointer) \
614
)
615
617
#define CCC_private_range_end(range_pointer) \
618
_Generic((range_pointer), CCC_Range *: CCC_range_end, CCC_Range const *: CCC_range_end, CCC_Handle_range *: CCC_handle_range_end, CCC_Handle_range const *: CCC_handle_range_end)( \
619
(range_pointer) \
620
)
621
623
#define CCC_private_range_reverse_begin(range_reverse_pointer) \
624
_Generic((range_reverse_pointer), CCC_Range_reverse *: CCC_range_reverse_begin, CCC_Range_reverse const *: CCC_range_reverse_begin, CCC_Handle_range_reverse *: CCC_handle_range_reverse_begin, CCC_Handle_range_reverse const *: CCC_handle_range_reverse_begin)( \
625
(range_reverse_pointer) \
626
)
627
629
#define CCC_private_range_reverse_end(range_reverse_pointer) \
630
_Generic((range_reverse_pointer), CCC_Range_reverse *: CCC_range_reverse_end, CCC_Range_reverse const *: CCC_range_reverse_end, CCC_Handle_range_reverse *: CCC_handle_range_reverse_end, CCC_Handle_range_reverse const *: CCC_handle_range_reverse_end)( \
631
(range_reverse_pointer) \
632
)
633
635
#define CCC_private_splice(container_pointer, splice_arguments...) \
636
_Generic((container_pointer), CCC_Singly_linked_list *: CCC_singly_linked_list_splice, CCC_Singly_linked_list const *: CCC_singly_linked_list_splice, CCC_Doubly_linked_list *: CCC_doubly_linked_list_splice, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_splice)( \
637
(container_pointer), splice_arguments \
638
)
639
641
#define CCC_private_splice_range(container_pointer, splice_range_arguments...) \
642
_Generic((container_pointer), CCC_Singly_linked_list *: CCC_singly_linked_list_splice_range, CCC_Singly_linked_list const *: CCC_singly_linked_list_splice_range, CCC_Doubly_linked_list *: CCC_doubly_linked_list_splice_range, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_splice_range)( \
643
(container_pointer), splice_range_arguments \
644
)
645
646
/*=================== Memory Management =======================*/
647
648
#ifdef CCC_SPECIALIZED_ENABLED
650
# define CCC_private_copy( \
651
destination_container_pointer, \
652
source_container_pointer, \
653
allocate_pointer \
654
) \
655
_Generic((destination_container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_copy, CCC_Flat_hash_map *: CCC_flat_hash_map_copy, CCC_Array_adaptive_map *: CCC_array_adaptive_map_copy, CCC_Flat_priority_queue *: CCC_flat_priority_queue_copy, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_copy, CCC_Array_tree_map *: CCC_array_tree_map_copy)((destination_container_pointer), (source_container_pointer), (allocate_pointer))
656
#else
658
# define CCC_private_copy( \
659
destination_container_pointer, \
660
source_container_pointer, \
661
allocate_pointer \
662
) \
663
_Generic((destination_container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_copy, CCC_Flat_hash_map *: CCC_flat_hash_map_copy, CCC_Flat_priority_queue *: CCC_flat_priority_queue_copy, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_copy, CCC_Array_tree_map *: CCC_array_tree_map_copy)( \
664
(destination_container_pointer), \
665
(source_container_pointer), \
666
(allocate_pointer) \
667
)
668
#endif
/* CCC_SPECIALIZED_ENABLED */
669
670
#ifdef CCC_SPECIALIZED_ENABLED
672
# define CCC_private_reserve(container_pointer, n_to_add, allocate_pointer) \
673
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_reserve, CCC_Flat_buffer *: CCC_flat_buffer_reserve, CCC_Flat_hash_map *: CCC_flat_hash_map_reserve, CCC_Array_adaptive_map *: CCC_array_adaptive_map_reserve, CCC_Flat_priority_queue *: CCC_flat_priority_queue_reserve, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_reserve, CCC_Array_tree_map *: CCC_array_tree_map_reserve)( \
674
(container_pointer), (n_to_add), (allocate_pointer) \
675
)
676
#else
678
# define CCC_private_reserve(container_pointer, n_to_add, allocate_pointer) \
679
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_reserve, CCC_Flat_buffer *: CCC_flat_buffer_reserve, CCC_Flat_hash_map *: CCC_flat_hash_map_reserve, CCC_Flat_priority_queue *: CCC_flat_priority_queue_reserve, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_reserve, CCC_Array_tree_map *: CCC_array_tree_map_reserve)( \
680
(container_pointer), (n_to_add), (allocate_pointer) \
681
)
682
#endif
/* CCC_SPECIALIZED_ENABLED */
683
684
#ifdef CCC_SPECIALIZED_ENABLED
686
# define CCC_private_clear(container_pointer, ...) \
687
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_clear, CCC_Flat_buffer *: CCC_flat_buffer_clear, CCC_Flat_hash_map *: CCC_flat_hash_map_clear, CCC_Array_adaptive_map *: CCC_array_adaptive_map_clear, CCC_Flat_priority_queue *: CCC_flat_priority_queue_clear, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_clear, CCC_Singly_linked_list *: CCC_singly_linked_list_clear, CCC_Doubly_linked_list *: CCC_doubly_linked_list_clear, CCC_Adaptive_map *: CCC_adaptive_map_clear, CCC_Priority_queue *: CCC_priority_queue_clear, CCC_Tree_map *: CCC_tree_map_clear, CCC_Array_tree_map *: CCC_array_tree_map_clear)(( \
688
container_pointer \
689
)__VA_OPT__(, __VA_ARGS__))
690
#else
692
# define CCC_private_clear(container_pointer, ...) \
693
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_clear, CCC_Flat_buffer *: CCC_flat_buffer_clear, CCC_Flat_hash_map *: CCC_flat_hash_map_clear, CCC_Flat_priority_queue *: CCC_flat_priority_queue_clear, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_clear, CCC_Singly_linked_list *: CCC_singly_linked_list_clear, CCC_Doubly_linked_list *: CCC_doubly_linked_list_clear, CCC_Tree_map *: CCC_tree_map_clear, CCC_Array_tree_map *: CCC_array_tree_map_clear)( \
694
(container_pointer)__VA_OPT__(, __VA_ARGS__) \
695
)
696
#endif
/* CCC_SPECIALIZED_ENABLED */
697
698
#ifdef CCC_SPECIALIZED_ENABLED
700
# define CCC_private_clear_and_free(container_pointer, ...) \
701
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_clear_and_free, CCC_Flat_buffer *: CCC_flat_buffer_clear_and_free, CCC_Flat_hash_map *: CCC_flat_hash_map_clear_and_free, CCC_Array_adaptive_map *: CCC_array_adaptive_map_clear_and_free, CCC_Flat_priority_queue *: CCC_flat_priority_queue_clear_and_free, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_clear_and_free, CCC_Array_tree_map *: CCC_array_tree_map_clear_and_free)( \
702
(container_pointer)__VA_OPT__(, __VA_ARGS__) \
703
)
704
#else
706
# define CCC_private_clear_and_free(container_pointer, ...) \
707
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_clear_and_free, CCC_Flat_buffer *: CCC_flat_buffer_clear_and_free, CCC_Flat_hash_map *: CCC_flat_hash_map_clear_and_free, CCC_Flat_priority_queue *: CCC_flat_priority_queue_clear_and_free, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_clear_and_free, CCC_Array_tree_map *: CCC_array_tree_map_clear_and_free)( \
708
(container_pointer)__VA_OPT__(, __VA_ARGS__) \
709
)
710
#endif
/* CCC_SPECIALIZED_ENABLED */
711
712
/*=================== Standard Getters Interface =======================*/
713
714
#ifdef CCC_SPECIALIZED_ENABLED
716
# define CCC_private_count(container_pointer) \
717
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_count, CCC_Flat_buffer *: CCC_flat_buffer_count, CCC_Flat_hash_map *: CCC_flat_hash_map_count, CCC_Adaptive_map *: CCC_adaptive_map_count, CCC_Array_adaptive_map *: CCC_array_adaptive_map_count, CCC_Flat_priority_queue *: CCC_flat_priority_queue_count, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_count, CCC_Priority_queue *: CCC_priority_queue_count, CCC_Singly_linked_list *: CCC_singly_linked_list_count, CCC_Doubly_linked_list *: CCC_doubly_linked_list_count, CCC_Tree_map *: CCC_tree_map_count, CCC_Array_tree_map *: CCC_array_tree_map_count, CCC_Flat_bitset const *: CCC_flat_bitset_count, CCC_Flat_buffer const *: CCC_flat_buffer_count, CCC_Flat_hash_map const *: CCC_flat_hash_map_count, CCC_Adaptive_map const *: CCC_adaptive_map_count, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_count, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_count, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_count, CCC_Priority_queue const *: CCC_priority_queue_count, CCC_Singly_linked_list const *: CCC_singly_linked_list_count, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_count, CCC_Array_tree_map const *: CCC_array_tree_map_count, CCC_Tree_map const *: CCC_tree_map_count)(( \
718
container_pointer \
719
))
720
#else
722
# define CCC_private_count(container_pointer) \
723
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_count, CCC_Flat_buffer *: CCC_flat_buffer_count, CCC_Flat_hash_map *: CCC_flat_hash_map_count, CCC_Flat_priority_queue *: CCC_flat_priority_queue_count, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_count, CCC_Singly_linked_list *: CCC_singly_linked_list_count, CCC_Doubly_linked_list *: CCC_doubly_linked_list_count, CCC_Tree_map *: CCC_tree_map_count, CCC_Array_tree_map *: CCC_array_tree_map_count, CCC_Flat_bitset const *: CCC_flat_bitset_count, CCC_Flat_buffer const *: CCC_flat_buffer_count, CCC_Flat_hash_map const *: CCC_flat_hash_map_count, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_count, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_count, CCC_Singly_linked_list const *: CCC_singly_linked_list_count, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_count, CCC_Array_tree_map const *: CCC_array_tree_map_count, CCC_Tree_map const *: CCC_tree_map_count)( \
724
(container_pointer) \
725
)
726
#endif
/* CCC_SPECIALIZED_ENABLED */
727
728
#ifdef CCC_SPECIALIZED_ENABLED
730
# define CCC_private_capacity(container_pointer) \
731
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_capacity, CCC_Flat_buffer *: CCC_flat_buffer_capacity, CCC_Flat_hash_map *: CCC_flat_hash_map_capacity, CCC_Array_adaptive_map *: CCC_array_adaptive_map_capacity, CCC_Flat_priority_queue *: CCC_flat_priority_queue_capacity, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_capacity, CCC_Array_tree_map *: CCC_array_tree_map_capacity, CCC_Flat_bitset const *: CCC_flat_bitset_capacity, CCC_Flat_buffer const *: CCC_flat_buffer_capacity, CCC_Flat_hash_map const *: CCC_flat_hash_map_capacity, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_capacity, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_capacity, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_capacity, CCC_Array_tree_map const *: CCC_array_tree_map_capacity)( \
732
(container_pointer) \
733
)
734
#else
736
# define CCC_private_capacity(container_pointer) \
737
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_capacity, CCC_Flat_buffer *: CCC_flat_buffer_capacity, CCC_Flat_hash_map *: CCC_flat_hash_map_capacity, CCC_Flat_priority_queue *: CCC_flat_priority_queue_capacity, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_capacity, CCC_Array_tree_map *: CCC_array_tree_map_capacity, CCC_Flat_bitset const *: CCC_flat_bitset_capacity, CCC_Flat_buffer const *: CCC_flat_buffer_capacity, CCC_Flat_hash_map const *: CCC_flat_hash_map_capacity, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_capacity, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_capacity, CCC_Array_tree_map const *: CCC_array_tree_map_capacity)( \
738
(container_pointer) \
739
)
740
#endif
/* CCC_SPECIALIZED_ENABLED */
741
742
#ifdef CCC_SPECIALIZED_ENABLED
744
# define CCC_private_is_empty(container_pointer) \
745
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_is_empty, CCC_Flat_buffer *: CCC_flat_buffer_is_empty, CCC_Flat_hash_map *: CCC_flat_hash_map_is_empty, CCC_Adaptive_map *: CCC_adaptive_map_is_empty, CCC_Array_adaptive_map *: CCC_array_adaptive_map_is_empty, CCC_Flat_priority_queue *: CCC_flat_priority_queue_is_empty, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_is_empty, CCC_Priority_queue *: CCC_priority_queue_is_empty, CCC_Singly_linked_list *: CCC_singly_linked_list_is_empty, CCC_Doubly_linked_list *: CCC_doubly_linked_list_is_empty, CCC_Tree_map *: CCC_tree_map_is_empty, CCC_Array_tree_map *: CCC_array_tree_map_is_empty, CCC_Flat_bitset const *: CCC_flat_bitset_is_empty, CCC_Flat_buffer const *: CCC_flat_buffer_is_empty, CCC_Flat_hash_map const *: CCC_flat_hash_map_is_empty, CCC_Adaptive_map const *: CCC_adaptive_map_is_empty, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_is_empty, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_is_empty, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_is_empty, CCC_Priority_queue const *: CCC_priority_queue_is_empty, CCC_Singly_linked_list const *: CCC_singly_linked_list_is_empty, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_is_empty, CCC_Array_tree_map const *: CCC_array_tree_map_is_empty, CCC_Tree_map const *: CCC_tree_map_is_empty)( \
746
(container_pointer) \
747
)
748
#else
750
# define CCC_private_is_empty(container_pointer) \
751
_Generic((container_pointer), CCC_Flat_bitset *: CCC_flat_bitset_is_empty, CCC_Flat_buffer *: CCC_flat_buffer_is_empty, CCC_Flat_hash_map *: CCC_flat_hash_map_is_empty, CCC_Flat_priority_queue *: CCC_flat_priority_queue_is_empty, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_is_empty, CCC_Singly_linked_list *: CCC_singly_linked_list_is_empty, CCC_Doubly_linked_list *: CCC_doubly_linked_list_is_empty, CCC_Tree_map *: CCC_tree_map_is_empty, CCC_Array_tree_map *: CCC_array_tree_map_is_empty, CCC_Flat_bitset const *: CCC_flat_bitset_is_empty, CCC_Flat_buffer const *: CCC_flat_buffer_is_empty, CCC_Flat_hash_map const *: CCC_flat_hash_map_is_empty, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_is_empty, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_is_empty, CCC_Singly_linked_list const *: CCC_singly_linked_list_is_empty, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_is_empty, CCC_Array_tree_map const *: CCC_array_tree_map_is_empty, CCC_Tree_map const *: CCC_tree_map_is_empty)( \
752
(container_pointer) \
753
)
754
#endif
/* CCC_SPECIALIZED_ENABLED */
755
756
#ifdef CCC_SPECIALIZED_ENABLED
758
# define CCC_private_validate(container_pointer) \
759
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_validate, CCC_Adaptive_map *: CCC_adaptive_map_validate, CCC_Array_adaptive_map *: CCC_array_adaptive_map_validate, CCC_Flat_priority_queue *: CCC_flat_priority_queue_validate, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_validate, CCC_Priority_queue *: CCC_priority_queue_validate, CCC_Singly_linked_list *: CCC_singly_linked_list_validate, CCC_Doubly_linked_list *: CCC_doubly_linked_list_validate, CCC_Tree_map *: CCC_tree_map_validate, CCC_Array_tree_map *: CCC_array_tree_map_validate, CCC_Flat_hash_map const *: CCC_flat_hash_map_validate, CCC_Adaptive_map const *: CCC_adaptive_map_validate, CCC_Array_adaptive_map const *: CCC_array_adaptive_map_validate, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_validate, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_validate, CCC_Priority_queue const *: CCC_priority_queue_validate, CCC_Singly_linked_list const *: CCC_singly_linked_list_validate, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_validate, CCC_Array_tree_map const *: CCC_array_tree_map_validate, CCC_Tree_map const *: CCC_tree_map_validate)( \
760
(container_pointer) \
761
)
762
#else
764
# define CCC_private_validate(container_pointer) \
765
_Generic((container_pointer), CCC_Flat_hash_map *: CCC_flat_hash_map_validate, CCC_Flat_priority_queue *: CCC_flat_priority_queue_validate, CCC_Flat_double_ended_queue *: CCC_flat_double_ended_queue_validate, CCC_Singly_linked_list *: CCC_singly_linked_list_validate, CCC_Doubly_linked_list *: CCC_doubly_linked_list_validate, CCC_Tree_map *: CCC_tree_map_validate, CCC_Array_tree_map *: CCC_array_tree_map_validate, CCC_Flat_hash_map const *: CCC_flat_hash_map_validate, CCC_Flat_priority_queue const *: CCC_flat_priority_queue_validate, CCC_Flat_double_ended_queue const *: CCC_flat_double_ended_queue_validate, CCC_Singly_linked_list const *: CCC_singly_linked_list_validate, CCC_Doubly_linked_list const *: CCC_doubly_linked_list_validate, CCC_Array_tree_map const *: CCC_array_tree_map_validate, CCC_Tree_map const *: CCC_tree_map_validate)( \
766
(container_pointer) \
767
)
768
#endif
/* CCC_SPECIALIZED_ENABLED */
769
770
#endif
/* CCC_PRIVATE_TRAITS_H */
ccc
private
private_traits.h
Generated by
1.9.6