doubly-list.h File
C++ header file with the declarations for the µOS++ doubly linked list iterator and list class templates. More...
Included Headers
#include "doubly-list-links.h"
#include "inlines/doubly-list-inlines.h"
Namespaces Index
| namespace | micro_os_plus |
|
The primary namespace for the µOS++ framework. More... | |
| namespace | utils |
|
The µOS++ utilities definitions. More... | |
Classes Index
| class | doubly_list<T, L> |
|
A class template for a doubly linked list of nodes. More... | |
| class | doubly_list_iterator<T, N, U> |
|
A class template for a doubly linked list iterator. More... | |
Description
C++ header file with the declarations for the µOS++ doubly linked list iterator and list class templates.
The doubly-list.h header file contains the C++ declarations of the doubly_list_iterator and doubly_list class templates.
The class implementations are in doubly-list-inlines.h.
File Listing
The file content with the documentation metadata removed is:
30#include "doubly-list-links.h"
47namespace micro_os_plus::utils
69 class doubly_list_iterator
75 using value_type = U;
80 using pointer = value_type*;
85 using reference = value_type&;
90 using iterator_pointer = N*;
95 using difference_type = ptrdiff_t;
100 using iterator_category = std::bidirectional_iterator_tag;
108 constexpr doubly_list_iterator () noexcept;
115 constexpr explicit doubly_list_iterator (
116 iterator_pointer const node) noexcept;
124 constexpr explicit doubly_list_iterator (reference element) noexcept;
134 [[nodiscard]] constexpr pointer
135 operator->() const noexcept;
142 [[nodiscard]] constexpr reference
143 operator* () const noexcept;
150 constexpr doubly_list_iterator&
151 operator++ () noexcept;
158 constexpr doubly_list_iterator
159 operator++ (int) noexcept;
166 constexpr doubly_list_iterator&
167 operator-- () noexcept;
174 constexpr doubly_list_iterator
175 operator-- (int) noexcept;
189 operator== (const doubly_list_iterator& other) const noexcept;
198 [[nodiscard]] constexpr pointer
199 get_pointer (void) const noexcept;
208 [[nodiscard]] constexpr iterator_pointer
209 get_iterator_pointer (void) const noexcept;
248 template <doubly_list_links_node T,
249 doubly_list_links_node L = doubly_list_links>
250 class doubly_list
257 using links_type = L;
262 using value_type = T;
267 using pointer = value_type*;
272 using reference = value_type&;
277 using iterator = doubly_list_iterator<value_type>;
282 using reverse_iterator = std::reverse_iterator<iterator>;
287 using iterator_pointer = value_type*;
292 using is_statically_allocated =
298 doubly_list () noexcept;
308 doubly_list (const doubly_list&) = delete;
318 doubly_list (doubly_list&&) = delete;
328 doubly_list&
329 operator= (const doubly_list&)
339 doubly_list&
340 operator= (doubly_list&&)
346 constexpr ~doubly_list ();
359 initialised (void) const noexcept;
370 initialise_once (void) noexcept;
381 empty (void) const noexcept;
392 clear (void) noexcept;
401 [[nodiscard]] constexpr pointer
402 head (void) const noexcept;
411 [[nodiscard]] constexpr pointer
412 tail (void) const noexcept;
441 [[nodiscard]] iterator
442 begin () const noexcept;
449 [[nodiscard]] iterator
450 end () const noexcept;
457 [[nodiscard]] reverse_iterator
458 rbegin () const noexcept;
465 [[nodiscard]] reverse_iterator
466 rend () const noexcept;
483 [[nodiscard]] constexpr const links_type*
484 links_pointer (void) const noexcept;
516#include "inlines/doubly-list-inlines.h"
Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.17.0.