Main C++ header file with the declarations for the µOS++ lists classes. More...
#include <cstdint>
#include <cstddef>
#include <cassert>
#include <iterator>
#include "lists-inlines.h"
Namespaces Index
Classes Index
class | double_list<T, L> |
| A class template for a doubly linked list of nodes. More... |
|
class | double_list_iterator<T, N, U> |
| A class template for a doubly linked list forward iterator. More... |
|
class | double_list_links |
| A class for the core of a doubly linked list (pointers to neighbours). More... |
|
class | double_list_links_base |
| A base class for a doubly linked list node. More... |
|
class | intrusive_list<T, N, MP, L, U> |
| A class template for a list of nodes which store the links inside themselves as intrusive nodes. More... |
|
class | intrusive_list_iterator<T, N, MP, U> |
| A class template for the intrusive list iterator. More... |
|
class | static_double_list_links |
| A class for the core of a statically allocated doubly linked list (pointers to neighbours). More... |
|
Description
Main C++ header file with the declarations for the µOS++ lists classes.
The lists.h
header file contains the C++ declarations of the µOS++ Intrusive Lists classes, delivering an efficient and lightweight linked list management system tailored for embedded applications.
The classes implementations are in the lists.cpp and lists-inlines.h files.
File Listing
The file content with the documentation metadata removed is:
1
2
3
4
5
6
7
8
9
10
11
25
49
50#ifndef MICRO_OS_PLUS_UTILS_LISTS_H_
51#define MICRO_OS_PLUS_UTILS_LISTS_H_
52
53
54
55#ifdef __cplusplus
56
57
58
59#if defined(MICRO_OS_PLUS_INCLUDE_CONFIG_H)
60#include <micro-os-plus/config.h>
61#endif
62
63#include <cstdint>
64#include <cstddef>
65#include <cassert>
66#include <iterator>
67
68
69
70#if defined(__GNUC__)
71#pragma GCC diagnostic push
72
73#pragma GCC diagnostic ignored "-Waggregate-return"
74#if defined(__clang__)
75#pragma clang diagnostic ignored "-Wc++98-compat"
76#endif
77#endif
78
94{
95
96
113 {
114 public:
119
120
121
131
140
151 = delete;
152
162 = delete;
163
168
177 bool
179
188 constexpr void
190
199 void
201
209 void
211
219 void
221
230 void
232
241 bool
243
253
263
264 protected:
269
274 };
275
276
277
296 {
297 public:
303
308
309
310
320
329
340 = delete;
341
351 = delete;
352
361 };
362
363
364
396 {
397 public:
402
408
418
428
439 = delete;
440
450 = delete;
451
456
465 void
467 };
468
469
470
488 template <class T, class N = T, class U = T>
490 {
491 public:
496
501
506
511
516
521
522
523
529
536
544
545
546
547
555
563
571
579
587
595
603 constexpr bool
605
613 constexpr bool
615
625
635
636 protected:
641 };
642
643
644
673 template <class T, class L = double_list_links>
675 {
676 public:
677 static_assert (std::is_base_of<double_list_links_base, L>::value == true,
678 "L must be derived from double_list_links_base!");
679 static_assert (std::is_base_of<double_list_links_base, T>::value == true,
680 "T must be derived from double_list_links_base!");
681
687
692
697
702
707
712
717 typename links_type::is_statically_allocated;
718
723
733
743
754 = delete;
755
765 = delete;
766
771
772 public:
782 bool
784
793 void
795
804 bool
806
815 void
817
827
837
845 void
847
855 void
857
858
859
867
875
876
877
887 {
889 }
890
891
892
893 protected:
905 };
906
907
908
927 template <class T, class N, N T::* MP, class U = T>
929 {
930 public:
935
940
945
950
955
960
961
962
968
975
983
984
985
986
994
1002
1010
1018
1026
1034
1042 bool
1044
1051 bool
1053
1063
1073
1074 protected:
1082 };
1083
1084
1085
1086#if defined(__clang__)
1087#pragma clang diagnostic push
1088#pragma clang diagnostic ignored "-Wdocumentation"
1089#endif
1129#if defined(__clang__)
1130#pragma clang diagnostic pop
1131#endif
1132
1134 class U = T>
1136 {
1137 public:
1138 static_assert (std::is_base_of<double_list_links_base, L>::value == true,
1139 "L must be derived from double_list_links_base!");
1140 static_assert (std::is_base_of<double_list_links_base, N>::value == true,
1141 "N must be derived from double_list_links_base!");
1142
1148
1153
1158
1163
1168
1173 typename links_type::is_statically_allocated;
1174
1179
1184
1189
1190
1191
1201
1211
1222 = delete;
1223
1233 = delete;
1234
1239
1240 public:
1249 void
1251
1260 constexpr bool
1262
1270 void
1272
1280 void
1282
1292
1302
1303
1304
1312
1320
1321
1322 protected:
1331 };
1332
1333
1334}
1335
1336#if defined(__GNUC__)
1337#pragma GCC diagnostic pop
1338#endif
1339
1340
1341
1342#endif
1343
1344
1345
1346
1348
1349
1350
1351#endif
1352
1353
Generated via docusaurus-plugin-doxygen by Doxygen 1.13.2