C Container Collection (CCC)
Loading...
Searching...
No Matches
impl_traits.h
1
16
#ifndef CCC_IMPL_TRAITS_H
17
#define CCC_IMPL_TRAITS_H
18
19
/* NOLINTBEGIN */
20
#include "../bitset.h"
21
#include "../buffer.h"
22
#include "../doubly_linked_list.h"
23
#include "../flat_double_ended_queue.h"
24
#include "../flat_hash_map.h"
25
#include "../flat_priority_queue.h"
26
#include "../handle_ordered_map.h"
27
#include "../handle_realtime_ordered_map.h"
28
#include "../ordered_map.h"
29
#include "../ordered_multimap.h"
30
#include "../priority_queue.h"
31
#include "../realtime_ordered_map.h"
32
#include "../singly_linked_list.h"
33
#include "../types.h"
34
/* NOLINTEND */
35
36
/*==================== Entry/Handle Interface =========================*/
37
38
#define ccc_impl_swap_entry(container_ptr, swap_args...) \
39
_Generic((container_ptr), \
40
ccc_flat_hash_map *: ccc_fhm_swap_entry, \
41
ccc_ordered_map *: ccc_om_swap_entry, \
42
ccc_ordered_multimap *: ccc_omm_swap_entry, \
43
ccc_realtime_ordered_map *: ccc_rom_swap_entry)((container_ptr), \
44
swap_args)
45
46
#define ccc_impl_swap_entry_r(container_ptr, key_val_container_handle_ptr...) \
47
&(ccc_entry) \
48
{ \
49
ccc_impl_swap_entry(container_ptr, key_val_container_handle_ptr).impl \
50
}
51
52
#define ccc_impl_swap_handle(container_ptr, swap_args...) \
53
_Generic((container_ptr), \
54
ccc_handle_ordered_map *: ccc_hom_swap_handle, \
55
ccc_handle_realtime_ordered_map \
56
*: ccc_hrm_swap_handle)((container_ptr), swap_args)
57
58
#define ccc_impl_swap_handle_r(container_ptr, key_val_container_handle_ptr...) \
59
&(ccc_handle) \
60
{ \
61
ccc_impl_swap_handle(container_ptr, key_val_container_handle_ptr).impl \
62
}
63
64
#define ccc_impl_try_insert(container_ptr, try_insert_args...) \
65
_Generic((container_ptr), \
66
ccc_handle_ordered_map *: ccc_hom_try_insert, \
67
ccc_handle_realtime_ordered_map *: ccc_hrm_try_insert, \
68
ccc_flat_hash_map *: ccc_fhm_try_insert, \
69
ccc_ordered_map *: ccc_om_try_insert, \
70
ccc_ordered_multimap *: ccc_omm_try_insert, \
71
ccc_realtime_ordered_map *: ccc_rom_try_insert)((container_ptr), \
72
try_insert_args)
73
74
#define ccc_impl_try_insert_r(container_ptr, try_insert_args...) \
75
_Generic((container_ptr), \
76
ccc_handle_ordered_map \
77
*: &(ccc_handle){ccc_hom_try_insert( \
78
(ccc_handle_ordered_map *)container_ptr, \
79
(ccc_homap_elem *)try_insert_args) \
80
.impl}, \
81
ccc_handle_realtime_ordered_map \
82
*: &(ccc_handle){ccc_hrm_try_insert( \
83
(ccc_handle_realtime_ordered_map *) \
84
container_ptr, \
85
(ccc_hromap_elem *)try_insert_args) \
86
.impl}, \
87
ccc_flat_hash_map \
88
*: &(ccc_entry){ccc_fhm_try_insert( \
89
(ccc_flat_hash_map *)container_ptr, \
90
(void *)try_insert_args) \
91
.impl}, \
92
ccc_ordered_map \
93
*: &( \
94
ccc_entry){ccc_om_try_insert((ccc_ordered_map *)container_ptr, \
95
(ccc_omap_elem *)try_insert_args) \
96
.impl}, \
97
ccc_ordered_multimap \
98
*: &(ccc_entry){ccc_omm_try_insert( \
99
(ccc_ordered_multimap *)container_ptr, \
100
(ccc_ommap_elem *)try_insert_args) \
101
.impl}, \
102
ccc_realtime_ordered_map \
103
*: &(ccc_entry){ \
104
ccc_rom_try_insert((ccc_realtime_ordered_map *)container_ptr, \
105
(ccc_romap_elem *)try_insert_args) \
106
.impl})
107
108
#define ccc_impl_insert_or_assign(container_ptr, insert_or_assign_args...) \
109
_Generic((container_ptr), \
110
ccc_handle_ordered_map *: ccc_hom_insert_or_assign, \
111
ccc_handle_realtime_ordered_map *: ccc_hrm_insert_or_assign, \
112
ccc_flat_hash_map *: ccc_fhm_insert_or_assign, \
113
ccc_ordered_map *: ccc_om_insert_or_assign, \
114
ccc_ordered_multimap *: ccc_omm_insert_or_assign, \
115
ccc_realtime_ordered_map *: ccc_rom_insert_or_assign)( \
116
(container_ptr), insert_or_assign_args)
117
118
#define ccc_impl_insert_or_assign_r(container_ptr, insert_or_assign_args...) \
119
_Generic((container_ptr), \
120
ccc_handle_ordered_map \
121
*: &(ccc_handle){ccc_hom_insert_or_assign( \
122
(ccc_handle_ordered_map *)container_ptr, \
123
(ccc_homap_elem *)insert_or_assign_args) \
124
.impl}, \
125
ccc_handle_realtime_ordered_map \
126
*: &(ccc_handle){ccc_hrm_insert_or_assign( \
127
(ccc_handle_realtime_ordered_map *) \
128
container_ptr, \
129
(ccc_hromap_elem *)insert_or_assign_args) \
130
.impl}, \
131
ccc_flat_hash_map \
132
*: &(ccc_entry){ccc_fhm_insert_or_assign( \
133
(ccc_flat_hash_map *)container_ptr, \
134
(void *)insert_or_assign_args) \
135
.impl}, \
136
ccc_ordered_map \
137
*: &(ccc_entry){ccc_om_insert_or_assign( \
138
(ccc_ordered_map *)container_ptr, \
139
(ccc_omap_elem *)insert_or_assign_args) \
140
.impl}, \
141
ccc_ordered_multimap \
142
*: &(ccc_entry){ccc_omm_insert_or_assign( \
143
(ccc_ordered_multimap *)container_ptr, \
144
(ccc_ommap_elem *)insert_or_assign_args) \
145
.impl}, \
146
ccc_realtime_ordered_map \
147
*: &(ccc_entry){ccc_rom_insert_or_assign( \
148
(ccc_realtime_ordered_map *)container_ptr, \
149
(ccc_romap_elem *)insert_or_assign_args) \
150
.impl})
151
152
#define ccc_impl_remove(container_ptr, key_val_container_handle_ptr...) \
153
_Generic((container_ptr), \
154
ccc_handle_ordered_map *: ccc_hom_remove, \
155
ccc_handle_realtime_ordered_map *: ccc_hrm_remove, \
156
ccc_flat_hash_map *: ccc_fhm_remove, \
157
ccc_ordered_map *: ccc_om_remove, \
158
ccc_ordered_multimap *: ccc_omm_remove, \
159
ccc_realtime_ordered_map \
160
*: ccc_rom_remove)((container_ptr), key_val_container_handle_ptr)
161
162
#define ccc_impl_remove_r(container_ptr, key_val_container_handle_ptr...) \
163
_Generic((container_ptr), \
164
ccc_handle_ordered_map \
165
*: &(ccc_handle){ccc_hom_remove( \
166
(ccc_handle_ordered_map *)container_ptr, \
167
(ccc_homap_elem *) \
168
key_val_container_handle_ptr) \
169
.impl}, \
170
ccc_handle_realtime_ordered_map \
171
*: &( \
172
ccc_handle){ccc_hrm_remove((ccc_handle_realtime_ordered_map *) \
173
container_ptr, \
174
(ccc_hromap_elem *) \
175
key_val_container_handle_ptr) \
176
.impl}, \
177
ccc_flat_hash_map \
178
*: &(ccc_entry){ccc_fhm_remove( \
179
(ccc_flat_hash_map *)container_ptr, \
180
(void *)key_val_container_handle_ptr) \
181
.impl}, \
182
ccc_ordered_map \
183
*: &(ccc_entry){ccc_om_remove( \
184
(ccc_ordered_map *)container_ptr, \
185
(ccc_omap_elem *)key_val_container_handle_ptr) \
186
.impl}, \
187
ccc_ordered_multimap \
188
*: &( \
189
ccc_entry){ccc_omm_remove( \
190
(ccc_ordered_multimap *)container_ptr, \
191
(ccc_ommap_elem *)key_val_container_handle_ptr) \
192
.impl}, \
193
ccc_realtime_ordered_map \
194
*: &(ccc_entry){ \
195
ccc_rom_remove((ccc_realtime_ordered_map *)container_ptr, \
196
(ccc_romap_elem *)key_val_container_handle_ptr) \
197
.impl})
198
199
#define ccc_impl_remove_entry(container_entry_ptr) \
200
_Generic((container_entry_ptr), \
201
ccc_fhmap_entry *: ccc_fhm_remove_entry, \
202
ccc_omap_entry *: ccc_om_remove_entry, \
203
ccc_ommap_entry *: ccc_omm_remove_entry, \
204
ccc_romap_entry *: ccc_rom_remove_entry, \
205
ccc_fhmap_entry const *: ccc_fhm_remove_entry, \
206
ccc_omap_entry const *: ccc_om_remove_entry, \
207
ccc_romap_entry const *: ccc_rom_remove_entry)((container_entry_ptr))
208
209
#define ccc_impl_remove_entry_r(container_entry_ptr) \
210
&(ccc_entry) \
211
{ \
212
ccc_impl_remove_entry(container_entry_ptr).impl \
213
}
214
215
#define ccc_impl_remove_handle(container_handle_ptr) \
216
_Generic((container_handle_ptr), \
217
ccc_homap_handle *: ccc_hom_remove_handle, \
218
ccc_homap_handle const *: ccc_hom_remove_handle, \
219
ccc_hromap_handle *: ccc_hrm_remove_handle, \
220
ccc_hromap_handle const *: ccc_hrm_remove_handle)( \
221
(container_handle_ptr))
222
223
#define ccc_impl_remove_handle_r(container_handle_ptr) \
224
&(ccc_handle) \
225
{ \
226
ccc_impl_remove_handle(container_handle_ptr).impl \
227
}
228
229
#define ccc_impl_entry(container_ptr, key_ptr...) \
230
_Generic((container_ptr), \
231
ccc_flat_hash_map *: ccc_fhm_entry, \
232
ccc_flat_hash_map const *: ccc_fhm_entry, \
233
ccc_ordered_map *: ccc_om_entry, \
234
ccc_ordered_multimap *: ccc_omm_entry, \
235
ccc_realtime_ordered_map *: ccc_rom_entry, \
236
ccc_realtime_ordered_map const *: ccc_rom_entry)((container_ptr), \
237
key_ptr)
238
239
#define ccc_impl_entry_r(container_ptr, key_ptr...) \
240
_Generic((container_ptr), \
241
ccc_flat_hash_map \
242
*: &(ccc_fhmap_entry){ccc_fhm_entry( \
243
(ccc_flat_hash_map *)(container_ptr), \
244
key_ptr) \
245
.impl}, \
246
ccc_flat_hash_map const *: &( \
247
ccc_fhmap_entry){ccc_fhm_entry( \
248
(ccc_flat_hash_map *)(container_ptr), \
249
key_ptr) \
250
.impl}, \
251
ccc_ordered_map *: &( \
252
ccc_omap_entry){ccc_om_entry( \
253
(ccc_ordered_map *)(container_ptr), \
254
key_ptr) \
255
.impl}, \
256
ccc_ordered_multimap *: &( \
257
ccc_ommap_entry){ccc_omm_entry( \
258
(ccc_ordered_multimap *)(container_ptr), \
259
key_ptr) \
260
.impl}, \
261
ccc_realtime_ordered_map *: &( \
262
ccc_romap_entry){ccc_rom_entry((ccc_realtime_ordered_map \
263
*)(container_ptr), \
264
key_ptr) \
265
.impl}, \
266
ccc_realtime_ordered_map const *: &(ccc_romap_entry){ \
267
ccc_rom_entry((ccc_realtime_ordered_map *)(container_ptr), \
268
key_ptr) \
269
.impl})
270
271
#define ccc_impl_handle(container_ptr, key_ptr...) \
272
_Generic((container_ptr), \
273
ccc_handle_ordered_map *: ccc_hom_handle, \
274
ccc_handle_realtime_ordered_map *: ccc_hrm_handle, \
275
ccc_handle_realtime_ordered_map const *: ccc_hrm_handle)( \
276
(container_ptr), key_ptr)
277
278
#define ccc_impl_handle_r(container_ptr, key_ptr...) \
279
_Generic((container_ptr), \
280
ccc_handle_ordered_map \
281
*: &(ccc_homap_handle){ccc_hom_handle((ccc_handle_ordered_map \
282
*)(container_ptr), \
283
key_ptr) \
284
.impl}, \
285
ccc_handle_realtime_ordered_map \
286
*: &(ccc_hromap_handle){ccc_hrm_handle( \
287
(ccc_handle_realtime_ordered_map \
288
*)(container_ptr), \
289
key_ptr) \
290
.impl}, \
291
ccc_handle_realtime_ordered_map const *: &(ccc_hromap_handle){ \
292
ccc_hrm_handle((ccc_handle_realtime_ordered_map *)(container_ptr), \
293
key_ptr) \
294
.impl})
295
296
#define ccc_impl_and_modify(container_entry_ptr, mod_fn) \
297
_Generic((container_entry_ptr), \
298
ccc_fhmap_entry *: ccc_fhm_and_modify, \
299
ccc_omap_entry *: ccc_om_and_modify, \
300
ccc_ommap_entry *: ccc_omm_and_modify, \
301
ccc_homap_handle *: ccc_hom_and_modify, \
302
ccc_romap_entry *: ccc_rom_and_modify, \
303
ccc_hromap_handle *: ccc_hrm_and_modify, \
304
ccc_fhmap_entry const *: ccc_fhm_and_modify, \
305
ccc_hromap_handle const *: ccc_hrm_and_modify, \
306
ccc_omap_entry const *: ccc_om_and_modify, \
307
ccc_ommap_entry const *: ccc_omm_and_modify, \
308
ccc_homap_handle const *: ccc_hom_and_modify, \
309
ccc_romap_entry const *: ccc_rom_and_modify)((container_entry_ptr), \
310
(mod_fn))
311
312
#define ccc_impl_and_modify_aux(container_entry_ptr, mod_fn, aux_data_ptr...) \
313
_Generic((container_entry_ptr), \
314
ccc_fhmap_entry *: ccc_fhm_and_modify_aux, \
315
ccc_omap_entry *: ccc_om_and_modify_aux, \
316
ccc_ommap_entry *: ccc_omm_and_modify_aux, \
317
ccc_homap_handle *: ccc_hom_and_modify_aux, \
318
ccc_hromap_handle *: ccc_hrm_and_modify_aux, \
319
ccc_romap_entry *: ccc_rom_and_modify_aux, \
320
ccc_fhmap_entry const *: ccc_fhm_and_modify_aux, \
321
ccc_omap_entry const *: ccc_om_and_modify_aux, \
322
ccc_ommap_entry const *: ccc_omm_and_modify_aux, \
323
ccc_hromap_handle const *: ccc_hrm_and_modify_aux, \
324
ccc_homap_handle const *: ccc_hom_and_modify_aux, \
325
ccc_romap_entry const *: ccc_rom_and_modify_aux)( \
326
(container_entry_ptr), (mod_fn), aux_data_ptr)
327
328
#define ccc_impl_insert_entry(container_entry_ptr, \
329
key_val_container_handle_ptr...) \
330
_Generic((container_entry_ptr), \
331
ccc_fhmap_entry *: ccc_fhm_insert_entry, \
332
ccc_omap_entry *: ccc_om_insert_entry, \
333
ccc_ommap_entry *: ccc_omm_insert_entry, \
334
ccc_romap_entry *: ccc_rom_insert_entry, \
335
ccc_fhmap_entry const *: ccc_fhm_insert_entry, \
336
ccc_omap_entry const *: ccc_om_insert_entry, \
337
ccc_ommap_entry const *: ccc_omm_insert_entry, \
338
ccc_romap_entry const *: ccc_rom_insert_entry)( \
339
(container_entry_ptr), key_val_container_handle_ptr)
340
341
#define ccc_impl_insert_handle(container_handle_ptr, \
342
key_val_container_handle_ptr...) \
343
_Generic((container_handle_ptr), \
344
ccc_homap_handle *: ccc_hom_insert_handle, \
345
ccc_hromap_handle *: ccc_hrm_insert_handle, \
346
ccc_hromap_handle const *: ccc_hrm_insert_handle)( \
347
(container_handle_ptr), key_val_container_handle_ptr)
348
349
#define ccc_impl_or_insert(container_entry_ptr, \
350
key_val_container_handle_ptr...) \
351
_Generic((container_entry_ptr), \
352
ccc_fhmap_entry *: ccc_fhm_or_insert, \
353
ccc_omap_entry *: ccc_om_or_insert, \
354
ccc_ommap_entry *: ccc_omm_or_insert, \
355
ccc_homap_handle *: ccc_hom_or_insert, \
356
ccc_romap_entry *: ccc_rom_or_insert, \
357
ccc_hromap_handle *: ccc_hrm_or_insert, \
358
ccc_fhmap_entry const *: ccc_fhm_or_insert, \
359
ccc_omap_entry const *: ccc_om_or_insert, \
360
ccc_ommap_entry const *: ccc_omm_or_insert, \
361
ccc_hromap_handle const *: ccc_hrm_or_insert, \
362
ccc_homap_handle const *: ccc_hom_or_insert, \
363
ccc_romap_entry const *: ccc_rom_or_insert)( \
364
(container_entry_ptr), key_val_container_handle_ptr)
365
366
#define ccc_impl_unwrap(container_entry_ptr) \
367
_Generic((container_entry_ptr), \
368
ccc_entry *: ccc_entry_unwrap, \
369
ccc_entry const *: ccc_entry_unwrap, \
370
ccc_handle *: ccc_handle_unwrap, \
371
ccc_handle const *: ccc_handle_unwrap, \
372
ccc_fhmap_entry *: ccc_fhm_unwrap, \
373
ccc_fhmap_entry const *: ccc_fhm_unwrap, \
374
ccc_omap_entry *: ccc_om_unwrap, \
375
ccc_omap_entry const *: ccc_om_unwrap, \
376
ccc_ommap_entry *: ccc_omm_unwrap, \
377
ccc_ommap_entry const *: ccc_omm_unwrap, \
378
ccc_homap_handle *: ccc_hom_unwrap, \
379
ccc_homap_handle const *: ccc_hom_unwrap, \
380
ccc_hromap_handle *: ccc_hrm_unwrap, \
381
ccc_hromap_handle const *: ccc_hrm_unwrap, \
382
ccc_romap_entry *: ccc_rom_unwrap, \
383
ccc_romap_entry const *: ccc_rom_unwrap)((container_entry_ptr))
384
385
#define ccc_impl_occupied(container_entry_ptr) \
386
_Generic((container_entry_ptr), \
387
ccc_entry *: ccc_entry_occupied, \
388
ccc_entry const *: ccc_entry_occupied, \
389
ccc_handle *: ccc_handle_occupied, \
390
ccc_handle const *: ccc_handle_occupied, \
391
ccc_fhmap_entry *: ccc_fhm_occupied, \
392
ccc_fhmap_entry const *: ccc_fhm_occupied, \
393
ccc_omap_entry *: ccc_om_occupied, \
394
ccc_omap_entry const *: ccc_om_occupied, \
395
ccc_ommap_entry *: ccc_omm_occupied, \
396
ccc_ommap_entry const *: ccc_omm_occupied, \
397
ccc_homap_handle *: ccc_hom_occupied, \
398
ccc_homap_handle const *: ccc_hom_occupied, \
399
ccc_hromap_handle *: ccc_hrm_occupied, \
400
ccc_hromap_handle const *: ccc_hrm_occupied, \
401
ccc_romap_entry *: ccc_rom_occupied, \
402
ccc_romap_entry const *: ccc_rom_occupied)((container_entry_ptr))
403
404
#define ccc_impl_insert_error(container_entry_ptr) \
405
_Generic((container_entry_ptr), \
406
ccc_entry *: ccc_entry_insert_error, \
407
ccc_entry const *: ccc_entry_insert_error, \
408
ccc_handle *: ccc_handle_insert_error, \
409
ccc_handle const *: ccc_handle_insert_error, \
410
ccc_fhmap_entry *: ccc_fhm_insert_error, \
411
ccc_fhmap_entry const *: ccc_fhm_insert_error, \
412
ccc_omap_entry *: ccc_om_insert_error, \
413
ccc_omap_entry const *: ccc_om_insert_error, \
414
ccc_ommap_entry *: ccc_omm_insert_error, \
415
ccc_ommap_entry const *: ccc_omm_insert_error, \
416
ccc_homap_handle *: ccc_hom_insert_error, \
417
ccc_homap_handle const *: ccc_hom_insert_error, \
418
ccc_hromap_handle *: ccc_hrm_insert_error, \
419
ccc_hromap_handle const *: ccc_hrm_insert_error, \
420
ccc_romap_entry *: ccc_rom_insert_error, \
421
ccc_romap_entry const *: ccc_rom_insert_error)((container_entry_ptr))
422
423
/*====================== Misc Search Interface ===========================*/
424
425
#define ccc_impl_get_key_val(container_ptr, key_ptr...) \
426
_Generic((container_ptr), \
427
ccc_flat_hash_map *: ccc_fhm_get_key_val, \
428
ccc_flat_hash_map const *: ccc_fhm_get_key_val, \
429
ccc_ordered_map *: ccc_om_get_key_val, \
430
ccc_ordered_multimap *: ccc_omm_get_key_val, \
431
ccc_handle_ordered_map *: ccc_hom_get_key_val, \
432
ccc_handle_realtime_ordered_map *: ccc_hrm_get_key_val, \
433
ccc_handle_realtime_ordered_map const *: ccc_hrm_get_key_val, \
434
ccc_realtime_ordered_map *: ccc_rom_get_key_val, \
435
ccc_realtime_ordered_map const *: ccc_rom_get_key_val)( \
436
(container_ptr), key_ptr)
437
438
#define ccc_impl_contains(container_ptr, key_ptr...) \
439
_Generic((container_ptr), \
440
ccc_flat_hash_map *: ccc_fhm_contains, \
441
ccc_flat_hash_map const *: ccc_fhm_contains, \
442
ccc_ordered_map *: ccc_om_contains, \
443
ccc_handle_ordered_map *: ccc_hom_contains, \
444
ccc_handle_realtime_ordered_map *: ccc_hrm_contains, \
445
ccc_handle_realtime_ordered_map const *: ccc_hrm_contains, \
446
ccc_realtime_ordered_map *: ccc_rom_contains, \
447
ccc_realtime_ordered_map const *: ccc_rom_contains, \
448
ccc_ordered_multimap *: ccc_omm_contains)((container_ptr), key_ptr)
449
450
/*================ Sequential Containers Interface =====================*/
451
452
#define ccc_impl_push(container_ptr, container_handle_ptr...) \
453
_Generic((container_ptr), \
454
ccc_flat_priority_queue *: ccc_fpq_push, \
455
ccc_priority_queue *: ccc_pq_push)((container_ptr), \
456
container_handle_ptr)
457
458
#define ccc_impl_push_back(container_ptr, container_handle_ptr...) \
459
_Generic((container_ptr), \
460
ccc_flat_double_ended_queue *: ccc_fdeq_push_back, \
461
ccc_doubly_linked_list *: ccc_dll_push_back, \
462
ccc_buffer *: ccc_buf_push_back)((container_ptr), \
463
container_handle_ptr)
464
465
#define ccc_impl_push_front(container_ptr, container_handle_ptr...) \
466
_Generic((container_ptr), \
467
ccc_flat_double_ended_queue *: ccc_fdeq_push_front, \
468
ccc_doubly_linked_list *: ccc_dll_push_front, \
469
ccc_singly_linked_list *: ccc_sll_push_front)((container_ptr), \
470
container_handle_ptr)
471
472
#define ccc_impl_pop(container_ptr) \
473
_Generic((container_ptr), \
474
ccc_flat_priority_queue *: ccc_fpq_pop, \
475
ccc_priority_queue *: ccc_pq_pop)((container_ptr))
476
477
#define ccc_impl_pop_front(container_ptr) \
478
_Generic((container_ptr), \
479
ccc_flat_double_ended_queue *: ccc_fdeq_pop_front, \
480
ccc_doubly_linked_list *: ccc_dll_pop_front, \
481
ccc_singly_linked_list *: ccc_sll_pop_front)((container_ptr))
482
483
#define ccc_impl_pop_back(container_ptr) \
484
_Generic((container_ptr), \
485
ccc_flat_double_ended_queue *: ccc_fdeq_pop_back, \
486
ccc_doubly_linked_list *: ccc_dll_pop_back, \
487
ccc_buffer *: ccc_buf_pop_back)((container_ptr))
488
489
#define ccc_impl_front(container_ptr) \
490
_Generic((container_ptr), \
491
ccc_flat_double_ended_queue *: ccc_fdeq_front, \
492
ccc_doubly_linked_list *: ccc_dll_front, \
493
ccc_flat_priority_queue *: ccc_fpq_front, \
494
ccc_priority_queue *: ccc_pq_front, \
495
ccc_singly_linked_list *: ccc_sll_front, \
496
ccc_flat_double_ended_queue const *: ccc_fdeq_front, \
497
ccc_doubly_linked_list const *: ccc_dll_front, \
498
ccc_flat_priority_queue const *: ccc_fpq_front, \
499
ccc_priority_queue const *: ccc_pq_front, \
500
ccc_singly_linked_list const *: ccc_sll_front)((container_ptr))
501
502
#define ccc_impl_back(container_ptr) \
503
_Generic((container_ptr), \
504
ccc_flat_double_ended_queue *: ccc_fdeq_back, \
505
ccc_doubly_linked_list *: ccc_dll_back, \
506
ccc_buffer *: ccc_buf_back, \
507
ccc_flat_double_ended_queue const *: ccc_fdeq_back, \
508
ccc_doubly_linked_list const *: ccc_dll_back, \
509
ccc_buffer const *: ccc_buf_back)((container_ptr))
510
511
/*================ Priority Queue Update Interface =====================*/
512
513
#define ccc_impl_update(container_ptr, update_args...) \
514
_Generic((container_ptr), \
515
ccc_ordered_multimap *: ccc_omm_update, \
516
ccc_flat_priority_queue *: ccc_fpq_update, \
517
ccc_priority_queue *: ccc_pq_update)((container_ptr), update_args)
518
519
#define ccc_impl_increase(container_ptr, increase_args...) \
520
_Generic((container_ptr), \
521
ccc_ordered_multimap *: ccc_omm_increase, \
522
ccc_flat_priority_queue *: ccc_fpq_increase, \
523
ccc_priority_queue *: ccc_pq_increase)((container_ptr), increase_args)
524
525
#define ccc_impl_decrease(container_ptr, decrease_args...) \
526
_Generic((container_ptr), \
527
ccc_ordered_multimap *: ccc_omm_decrease, \
528
ccc_flat_priority_queue *: ccc_fpq_decrease, \
529
ccc_priority_queue *: ccc_pq_decrease)((container_ptr), decrease_args)
530
531
#define ccc_impl_extract(container_ptr, container_handle_ptr...) \
532
_Generic((container_ptr), \
533
ccc_ordered_multimap *: ccc_omm_extract, \
534
ccc_doubly_linked_list *: ccc_dll_extract, \
535
ccc_singly_linked_list *: ccc_sll_extract, \
536
ccc_priority_queue *: ccc_pq_extract)((container_ptr), \
537
container_handle_ptr)
538
539
#define ccc_impl_erase(container_ptr, container_handle_ptr...) \
540
_Generic((container_ptr), ccc_flat_priority_queue *: ccc_fpq_erase)( \
541
(container_ptr), container_handle_ptr)
542
543
#define ccc_impl_extract_range(container_ptr, \
544
container_handle_begin_end_ptr...) \
545
_Generic((container_ptr), \
546
ccc_doubly_linked_list *: ccc_dll_extract_range, \
547
ccc_singly_linked_list *: ccc_sll_extract_range)( \
548
(container_ptr), container_handle_begin_end_ptr)
549
550
/*=================== Iterators Interface ==============================*/
551
552
#define ccc_impl_begin(container_ptr) \
553
_Generic((container_ptr), \
554
ccc_buffer *: ccc_buf_begin, \
555
ccc_flat_hash_map *: ccc_fhm_begin, \
556
ccc_ordered_map *: ccc_om_begin, \
557
ccc_handle_ordered_map *: ccc_hom_begin, \
558
ccc_flat_double_ended_queue *: ccc_fdeq_begin, \
559
ccc_ordered_multimap *: ccc_omm_begin, \
560
ccc_singly_linked_list *: ccc_sll_begin, \
561
ccc_doubly_linked_list *: ccc_dll_begin, \
562
ccc_realtime_ordered_map *: ccc_rom_begin, \
563
ccc_handle_realtime_ordered_map *: ccc_hrm_begin, \
564
ccc_buffer const *: ccc_buf_begin, \
565
ccc_flat_hash_map const *: ccc_fhm_begin, \
566
ccc_ordered_map const *: ccc_om_begin, \
567
ccc_handle_ordered_map const *: ccc_hom_begin, \
568
ccc_flat_double_ended_queue const *: ccc_fdeq_begin, \
569
ccc_ordered_multimap const *: ccc_omm_begin, \
570
ccc_singly_linked_list const *: ccc_sll_begin, \
571
ccc_doubly_linked_list const *: ccc_dll_begin, \
572
ccc_handle_realtime_ordered_map const *: ccc_hrm_begin, \
573
ccc_realtime_ordered_map const *: ccc_rom_begin)((container_ptr))
574
575
#define ccc_impl_rbegin(container_ptr) \
576
_Generic((container_ptr), \
577
ccc_buffer *: ccc_buf_rbegin, \
578
ccc_ordered_map *: ccc_om_rbegin, \
579
ccc_handle_ordered_map *: ccc_hom_rbegin, \
580
ccc_flat_double_ended_queue *: ccc_fdeq_rbegin, \
581
ccc_ordered_multimap *: ccc_omm_rbegin, \
582
ccc_doubly_linked_list *: ccc_dll_rbegin, \
583
ccc_realtime_ordered_map *: ccc_rom_rbegin, \
584
ccc_handle_realtime_ordered_map *: ccc_hrm_rbegin, \
585
ccc_buffer const *: ccc_buf_rbegin, \
586
ccc_ordered_map const *: ccc_om_rbegin, \
587
ccc_handle_ordered_map const *: ccc_hom_rbegin, \
588
ccc_flat_double_ended_queue const *: ccc_fdeq_rbegin, \
589
ccc_ordered_multimap const *: ccc_omm_rbegin, \
590
ccc_doubly_linked_list const *: ccc_dll_rbegin, \
591
ccc_handle_realtime_ordered_map const *: ccc_hrm_rbegin, \
592
ccc_realtime_ordered_map const *: ccc_rom_rbegin)((container_ptr))
593
594
#define ccc_impl_next(container_ptr, void_iter_ptr) \
595
_Generic((container_ptr), \
596
ccc_buffer *: ccc_buf_next, \
597
ccc_flat_hash_map *: ccc_fhm_next, \
598
ccc_ordered_map *: ccc_om_next, \
599
ccc_handle_ordered_map *: ccc_hom_next, \
600
ccc_flat_double_ended_queue *: ccc_fdeq_next, \
601
ccc_ordered_multimap *: ccc_omm_next, \
602
ccc_singly_linked_list *: ccc_sll_next, \
603
ccc_doubly_linked_list *: ccc_dll_next, \
604
ccc_realtime_ordered_map *: ccc_rom_next, \
605
ccc_handle_realtime_ordered_map *: ccc_hrm_next, \
606
ccc_buffer const *: ccc_buf_next, \
607
ccc_flat_hash_map const *: ccc_fhm_next, \
608
ccc_ordered_map const *: ccc_om_next, \
609
ccc_handle_ordered_map const *: ccc_hom_next, \
610
ccc_flat_double_ended_queue const *: ccc_fdeq_next, \
611
ccc_ordered_multimap const *: ccc_omm_next, \
612
ccc_singly_linked_list const *: ccc_sll_next, \
613
ccc_doubly_linked_list const *: ccc_dll_next, \
614
ccc_handle_realtime_ordered_map const *: ccc_hrm_next, \
615
ccc_realtime_ordered_map const *: ccc_rom_next)((container_ptr), \
616
(void_iter_ptr))
617
618
#define ccc_impl_rnext(container_ptr, void_iter_ptr) \
619
_Generic((container_ptr), \
620
ccc_buffer *: ccc_buf_rnext, \
621
ccc_ordered_map *: ccc_om_rnext, \
622
ccc_handle_ordered_map *: ccc_hom_rnext, \
623
ccc_flat_double_ended_queue *: ccc_fdeq_rnext, \
624
ccc_ordered_multimap *: ccc_omm_rnext, \
625
ccc_doubly_linked_list *: ccc_dll_rnext, \
626
ccc_realtime_ordered_map *: ccc_rom_rnext, \
627
ccc_handle_realtime_ordered_map *: ccc_hrm_rnext, \
628
ccc_buffer const *: ccc_buf_rnext, \
629
ccc_ordered_map const *: ccc_om_rnext, \
630
ccc_handle_ordered_map const *: ccc_hom_rnext, \
631
ccc_flat_double_ended_queue const *: ccc_fdeq_rnext, \
632
ccc_ordered_multimap const *: ccc_omm_rnext, \
633
ccc_doubly_linked_list const *: ccc_dll_rnext, \
634
ccc_handle_realtime_ordered_map const *: ccc_hrm_rnext, \
635
ccc_realtime_ordered_map const *: ccc_rom_rnext)((container_ptr), \
636
(void_iter_ptr))
637
638
#define ccc_impl_end(container_ptr) \
639
_Generic((container_ptr), \
640
ccc_buffer *: ccc_buf_end, \
641
ccc_flat_hash_map *: ccc_fhm_end, \
642
ccc_ordered_map *: ccc_om_end, \
643
ccc_handle_ordered_map *: ccc_hom_end, \
644
ccc_flat_double_ended_queue *: ccc_fdeq_end, \
645
ccc_ordered_multimap *: ccc_omm_end, \
646
ccc_singly_linked_list *: ccc_sll_end, \
647
ccc_doubly_linked_list *: ccc_dll_end, \
648
ccc_realtime_ordered_map *: ccc_rom_end, \
649
ccc_handle_realtime_ordered_map *: ccc_hrm_end, \
650
ccc_buffer const *: ccc_buf_end, \
651
ccc_flat_hash_map const *: ccc_fhm_end, \
652
ccc_ordered_map const *: ccc_om_end, \
653
ccc_handle_ordered_map const *: ccc_hom_end, \
654
ccc_flat_double_ended_queue const *: ccc_fdeq_end, \
655
ccc_ordered_multimap const *: ccc_omm_end, \
656
ccc_singly_linked_list const *: ccc_sll_end, \
657
ccc_doubly_linked_list const *: ccc_dll_end, \
658
ccc_handle_realtime_ordered_map const *: ccc_hrm_end, \
659
ccc_realtime_ordered_map const *: ccc_rom_end)((container_ptr))
660
661
#define ccc_impl_rend(container_ptr) \
662
_Generic((container_ptr), \
663
ccc_buffer *: ccc_buf_rend, \
664
ccc_ordered_map *: ccc_om_rend, \
665
ccc_handle_ordered_map *: ccc_hom_rend, \
666
ccc_flat_double_ended_queue *: ccc_fdeq_rend, \
667
ccc_ordered_multimap *: ccc_omm_rend, \
668
ccc_doubly_linked_list *: ccc_dll_rend, \
669
ccc_realtime_ordered_map *: ccc_rom_rend, \
670
ccc_handle_realtime_ordered_map *: ccc_hrm_rend, \
671
ccc_buffer const *: ccc_buf_rend, \
672
ccc_ordered_map const *: ccc_om_rend, \
673
ccc_handle_ordered_map const *: ccc_hom_rend, \
674
ccc_flat_double_ended_queue const *: ccc_fdeq_rend, \
675
ccc_ordered_multimap const *: ccc_omm_rend, \
676
ccc_doubly_linked_list const *: ccc_dll_rend, \
677
ccc_handle_realtime_ordered_map const *: ccc_hrm_rend, \
678
ccc_realtime_ordered_map const *: ccc_rom_rend)((container_ptr))
679
680
#define ccc_impl_equal_range(container_ptr, begin_and_end_key_ptr...) \
681
_Generic((container_ptr), \
682
ccc_ordered_map *: ccc_om_equal_range, \
683
ccc_handle_ordered_map *: ccc_hom_equal_range, \
684
ccc_ordered_multimap *: ccc_omm_equal_range, \
685
ccc_handle_realtime_ordered_map *: ccc_hrm_equal_range, \
686
ccc_handle_realtime_ordered_map const *: ccc_hrm_equal_range, \
687
ccc_realtime_ordered_map *: ccc_rom_equal_range, \
688
ccc_realtime_ordered_map const *: ccc_rom_equal_range)( \
689
(container_ptr), begin_and_end_key_ptr)
690
691
#define ccc_impl_equal_range_r(container_ptr, begin_and_end_key_ptr...) \
692
&(ccc_range) \
693
{ \
694
ccc_impl_equal_range(container_ptr, begin_and_end_key_ptr).impl \
695
}
696
697
#define ccc_impl_equal_rrange(container_ptr, rbegin_and_rend_key_ptr...) \
698
_Generic((container_ptr), \
699
ccc_ordered_map *: ccc_om_equal_rrange, \
700
ccc_handle_ordered_map *: ccc_hom_equal_rrange, \
701
ccc_ordered_multimap *: ccc_omm_equal_rrange, \
702
ccc_handle_realtime_ordered_map *: ccc_hrm_equal_rrange, \
703
ccc_handle_realtime_ordered_map const *: ccc_hrm_equal_rrange, \
704
ccc_realtime_ordered_map *: ccc_rom_equal_rrange, \
705
ccc_realtime_ordered_map const *: ccc_rom_equal_rrange)( \
706
(container_ptr), rbegin_and_rend_key_ptr)
707
708
#define ccc_impl_equal_rrange_r(container_ptr, rbegin_and_rend_key_ptr...) \
709
&(ccc_rrange) \
710
{ \
711
ccc_impl_equal_rrange(container_ptr, rbegin_and_rend_key_ptr).impl \
712
}
713
714
#define ccc_impl_splice(container_ptr, splice_args...) \
715
_Generic((container_ptr), \
716
ccc_singly_linked_list *: ccc_sll_splice, \
717
ccc_singly_linked_list const *: ccc_sll_splice, \
718
ccc_doubly_linked_list *: ccc_dll_splice, \
719
ccc_doubly_linked_list const *: ccc_dll_splice)((container_ptr), \
720
splice_args)
721
722
#define ccc_impl_splice_range(container_ptr, splice_range_args...) \
723
_Generic((container_ptr), \
724
ccc_singly_linked_list *: ccc_sll_splice_range, \
725
ccc_singly_linked_list const *: ccc_sll_splice_range, \
726
ccc_doubly_linked_list *: ccc_dll_splice_range, \
727
ccc_doubly_linked_list const *: ccc_dll_splice_range)( \
728
(container_ptr), splice_range_args)
729
730
/*=================== Memory Management =======================*/
731
732
#define ccc_impl_copy(dst_container_ptr, src_container_ptr, alloc_fn_ptr) \
733
_Generic((dst_container_ptr), \
734
ccc_bitset *: ccc_bs_copy, \
735
ccc_flat_hash_map *: ccc_fhm_copy, \
736
ccc_handle_ordered_map *: ccc_hom_copy, \
737
ccc_flat_priority_queue *: ccc_fpq_copy, \
738
ccc_flat_double_ended_queue *: ccc_fdeq_copy, \
739
ccc_handle_realtime_ordered_map *: ccc_hrm_copy)( \
740
(dst_container_ptr), (src_container_ptr), (alloc_fn_ptr))
741
742
#define ccc_impl_reserve(container_ptr, n_to_add, alloc_fn_ptr) \
743
_Generic((container_ptr), \
744
ccc_bitset *: ccc_bs_reserve, \
745
ccc_flat_hash_map *: ccc_fhm_reserve, \
746
ccc_handle_ordered_map *: ccc_hom_reserve, \
747
ccc_flat_priority_queue *: ccc_fpq_reserve, \
748
ccc_flat_double_ended_queue *: ccc_fdeq_reserve, \
749
ccc_handle_realtime_ordered_map \
750
*: ccc_hrm_reserve)((container_ptr), (n_to_add), (alloc_fn_ptr))
751
752
#define ccc_impl_clear(container_ptr, ...) \
753
_Generic((container_ptr), \
754
ccc_bitset *: ccc_bs_clear, \
755
ccc_flat_hash_map *: ccc_fhm_clear, \
756
ccc_handle_ordered_map *: ccc_hom_clear, \
757
ccc_flat_priority_queue *: ccc_fpq_clear, \
758
ccc_flat_double_ended_queue *: ccc_fdeq_clear, \
759
ccc_singly_linked_list *: ccc_sll_clear, \
760
ccc_doubly_linked_list *: ccc_dll_clear, \
761
ccc_ordered_multimap *: ccc_omm_clear, \
762
ccc_ordered_map *: ccc_omm_clear, \
763
ccc_priority_queue *: ccc_pq_clear, \
764
ccc_realtime_ordered_map *: ccc_rom_clear, \
765
ccc_handle_realtime_ordered_map \
766
*: ccc_hrm_clear)((container_ptr)__VA_OPT__(, __VA_ARGS__))
767
768
#define ccc_impl_clear_and_free(container_ptr, ...) \
769
_Generic((container_ptr), \
770
ccc_bitset *: ccc_bs_clear_and_free, \
771
ccc_flat_hash_map *: ccc_fhm_clear_and_free, \
772
ccc_handle_ordered_map *: ccc_hom_clear_and_free, \
773
ccc_flat_priority_queue *: ccc_fpq_clear_and_free, \
774
ccc_flat_double_ended_queue *: ccc_fdeq_clear_and_free, \
775
ccc_handle_realtime_ordered_map *: ccc_hrm_clear_and_free)( \
776
(container_ptr)__VA_OPT__(, __VA_ARGS__))
777
778
#define ccc_impl_clear_and_free_reserve(container_ptr, \
779
destructor_and_free_args...) \
780
_Generic((container_ptr), \
781
ccc_bitset *: ccc_bs_clear_and_free_reserve, \
782
ccc_flat_hash_map *: ccc_fhm_clear_and_free_reserve, \
783
ccc_handle_ordered_map *: ccc_hom_clear_and_free_reserve, \
784
ccc_flat_priority_queue *: ccc_fpq_clear_and_free_reserve, \
785
ccc_flat_double_ended_queue *: ccc_fdeq_clear_and_free_reserve, \
786
ccc_handle_realtime_ordered_map *: ccc_hrm_clear_and_free_reserve)( \
787
(container_ptr), destructor_and_free_args)
788
789
/*=================== Standard Getters Interface =======================*/
790
791
#define ccc_impl_size(container_ptr) \
792
_Generic((container_ptr), \
793
ccc_bitset *: ccc_bs_size, \
794
ccc_buffer *: ccc_buf_size, \
795
ccc_flat_hash_map *: ccc_fhm_size, \
796
ccc_ordered_map *: ccc_om_size, \
797
ccc_handle_ordered_map *: ccc_hom_size, \
798
ccc_flat_priority_queue *: ccc_fpq_size, \
799
ccc_flat_double_ended_queue *: ccc_fdeq_size, \
800
ccc_ordered_multimap *: ccc_omm_size, \
801
ccc_priority_queue *: ccc_pq_size, \
802
ccc_singly_linked_list *: ccc_sll_size, \
803
ccc_doubly_linked_list *: ccc_dll_size, \
804
ccc_realtime_ordered_map *: ccc_rom_size, \
805
ccc_handle_realtime_ordered_map *: ccc_hrm_size, \
806
ccc_buffer const *: ccc_buf_size, \
807
ccc_flat_hash_map const *: ccc_fhm_size, \
808
ccc_ordered_map const *: ccc_om_size, \
809
ccc_handle_ordered_map const *: ccc_hom_size, \
810
ccc_flat_priority_queue const *: ccc_fpq_size, \
811
ccc_flat_double_ended_queue const *: ccc_fdeq_size, \
812
ccc_ordered_multimap const *: ccc_omm_size, \
813
ccc_priority_queue const *: ccc_pq_size, \
814
ccc_singly_linked_list const *: ccc_sll_size, \
815
ccc_doubly_linked_list const *: ccc_dll_size, \
816
ccc_handle_realtime_ordered_map const *: ccc_hrm_size, \
817
ccc_realtime_ordered_map const *: ccc_rom_size)((container_ptr))
818
819
#define ccc_impl_capacity(container_ptr) \
820
_Generic((container_ptr), \
821
ccc_bitset *: ccc_bs_capacity, \
822
ccc_buffer *: ccc_buf_capacity, \
823
ccc_flat_hash_map *: ccc_fhm_capacity, \
824
ccc_handle_ordered_map *: ccc_hom_capacity, \
825
ccc_flat_priority_queue *: ccc_fpq_capacity, \
826
ccc_flat_double_ended_queue *: ccc_fdeq_capacity, \
827
ccc_handle_realtime_ordered_map *: ccc_hrm_capacity, \
828
ccc_buffer const *: ccc_buf_capacity, \
829
ccc_flat_hash_map const *: ccc_fhm_capacity, \
830
ccc_handle_ordered_map const *: ccc_hom_capacity, \
831
ccc_flat_priority_queue const *: ccc_fpq_capacity, \
832
ccc_flat_double_ended_queue const *: ccc_fdeq_capacity, \
833
ccc_handle_realtime_ordered_map const *: ccc_hrm_capacity)( \
834
(container_ptr))
835
836
#define ccc_impl_is_empty(container_ptr) \
837
_Generic((container_ptr), \
838
ccc_buffer *: ccc_buf_is_empty, \
839
ccc_flat_hash_map *: ccc_fhm_is_empty, \
840
ccc_ordered_map *: ccc_om_is_empty, \
841
ccc_handle_ordered_map *: ccc_hom_is_empty, \
842
ccc_flat_priority_queue *: ccc_fpq_is_empty, \
843
ccc_flat_double_ended_queue *: ccc_fdeq_is_empty, \
844
ccc_ordered_multimap *: ccc_omm_is_empty, \
845
ccc_priority_queue *: ccc_pq_is_empty, \
846
ccc_singly_linked_list *: ccc_sll_is_empty, \
847
ccc_doubly_linked_list *: ccc_dll_is_empty, \
848
ccc_realtime_ordered_map *: ccc_rom_is_empty, \
849
ccc_handle_realtime_ordered_map *: ccc_hrm_is_empty, \
850
ccc_buffer const *: ccc_buf_is_empty, \
851
ccc_flat_hash_map const *: ccc_fhm_is_empty, \
852
ccc_ordered_map const *: ccc_om_is_empty, \
853
ccc_handle_ordered_map const *: ccc_hom_is_empty, \
854
ccc_flat_priority_queue const *: ccc_fpq_is_empty, \
855
ccc_flat_double_ended_queue const *: ccc_fdeq_is_empty, \
856
ccc_ordered_multimap const *: ccc_omm_is_empty, \
857
ccc_priority_queue const *: ccc_pq_is_empty, \
858
ccc_singly_linked_list const *: ccc_sll_is_empty, \
859
ccc_doubly_linked_list const *: ccc_dll_is_empty, \
860
ccc_handle_realtime_ordered_map const *: ccc_hrm_is_empty, \
861
ccc_realtime_ordered_map const *: ccc_rom_is_empty)((container_ptr))
862
863
#define ccc_impl_validate(container_ptr) \
864
_Generic((container_ptr), \
865
ccc_flat_hash_map *: ccc_fhm_validate, \
866
ccc_ordered_map *: ccc_om_validate, \
867
ccc_handle_ordered_map *: ccc_hom_validate, \
868
ccc_flat_priority_queue *: ccc_fpq_validate, \
869
ccc_flat_double_ended_queue *: ccc_fdeq_validate, \
870
ccc_ordered_multimap *: ccc_omm_validate, \
871
ccc_priority_queue *: ccc_pq_validate, \
872
ccc_singly_linked_list *: ccc_sll_validate, \
873
ccc_doubly_linked_list *: ccc_dll_validate, \
874
ccc_realtime_ordered_map *: ccc_rom_validate, \
875
ccc_handle_realtime_ordered_map *: ccc_hrm_validate, \
876
ccc_flat_hash_map const *: ccc_fhm_validate, \
877
ccc_ordered_map const *: ccc_om_validate, \
878
ccc_handle_ordered_map const *: ccc_hom_validate, \
879
ccc_flat_priority_queue const *: ccc_fpq_validate, \
880
ccc_flat_double_ended_queue const *: ccc_fdeq_validate, \
881
ccc_ordered_multimap const *: ccc_omm_validate, \
882
ccc_priority_queue const *: ccc_pq_validate, \
883
ccc_singly_linked_list const *: ccc_sll_validate, \
884
ccc_doubly_linked_list const *: ccc_dll_validate, \
885
ccc_handle_realtime_ordered_map const *: ccc_hrm_validate, \
886
ccc_realtime_ordered_map const *: ccc_rom_validate)((container_ptr))
887
888
#endif
/* CCC_IMPL_TRAITS_H */
ccc
impl
impl_traits.h
Generated by
1.9.6