The file with the declarations of the µOS++ lists classes. More...
#include <cstdint>
#include <cstddef>
#include <cassert>
#include <iterator>
#include "inlines.h"
Classes
class | |
| A class template for a doubly linked list of nodes. More... |
|
class | |
| A class template for a doubly linked list forward iterator. More... |
|
class | |
| A class for the core of a doubly linked list (pointers to neighbours). More... |
|
class | |
| A base class for a doubly linked list. More... |
|
class | |
| A class template for a list of nodes which store the links inside themselves as intrusive nodes. More... |
|
class | |
| A class template for the intrusive list iterator. More... |
|
class | |
| A class for the core of a statically allocated doubly linked list (pointers to neighbours). More... |
|
Namespaces
namespace | |
| The top µOS++ namespace. |
|
namespace | |
| The µOS++ utilities definitions. |
|
Description
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 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
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
112 {
113 public:
118
122
123
128 = delete;
131 = delete;
132
136
141
149 bool
151
159 constexpr void
161
169 void
171
179 void
181
189 void
191
197 void
199
205 bool
207
214
221
222 protected:
227
232 };
233
234
235
251 {
252 public:
258
263
267
268
273 = delete;
276 = delete;
277
281
286 };
287
288
289
324 {
325 public:
330
336
340
341
346 = delete;
349 = delete;
350
354
359
367 void
369 };
370
371
372
387 template <class T, class N = T, class U = T>
389 {
390 public:
395
400
405
410
415
420
421
423
425
427
428
429
430
433
436
439
442
445
448
449 constexpr bool
451
452 constexpr bool
454
457
460
461 protected:
466 };
467
468
469
500 template <class T, class L = double_list_links>
502 {
503 public:
504 static_assert (std::is_base_of<double_list_links_base, L>::value == true,
505 "L must be derived from double_list_links_base!");
506 static_assert (std::is_base_of<double_list_links_base, T>::value == true,
507 "T must be derived from double_list_links_base!");
508
514
519
524
529
534
539
544 typename links_type::is_statically_allocated;
545
550
554
555
560 = delete;
563 = delete;
564
568
573
574 public:
583 bool
585
593 void
595
603 bool
605
613 void
615
624
633
637 void
639
643 void
645
646
647
654
661
662
663
670 {
672 }
673
674
675
676 protected:
689 };
690
691
692
708 template <class T, class N, N T::*MP, class U = T>
710 {
711 public:
716
721
726
731
736
741
742
744
746
748
749
750
751
754
757
760
763
766
769
770 bool
772
773 bool
775
782
785
786 protected:
791 };
792
793
794
795#if defined(__clang__)
796#pragma clang diagnostic push
797#pragma clang diagnostic ignored "-Wdocumentation"
798#endif
832#if defined(__clang__)
833#pragma clang diagnostic pop
834#endif
835
837 class U = T>
839 {
840 public:
841 static_assert (std::is_base_of<double_list_links_base, L>::value == true,
842 "L must be derived from double_list_links_base!");
843 static_assert (std::is_base_of<double_list_links_base, N>::value == true,
844 "N must be derived from double_list_links_base!");
845
851
856
861
866
871
876 typename links_type::is_statically_allocated;
877
882
887
892
896
897
902 = delete;
905 = delete;
906
910
915
916 public:
924 void
926
934 constexpr bool
936
943 void
945
952 void
954
961
968
969
970
977
984
985
986 protected:
993 };
994
995
996}
997
998#if defined(__GNUC__)
999#pragma GCC diagnostic pop
1000#endif
1001
1002
1003
1004#endif
1005
1006
1007
1008
1010
1011
1012
1013#endif
1014
1015
Generated via docusaurus-plugin-doxygen by Doxygen 1.13.2