doubly-list-inlines.h File
C++ header file with the inline implementations for the doubly_list_iterator and doubly_list class templates. More...
Namespaces Index
| namespace | micro_os_plus |
|
The primary namespace for the µOS++ framework. More... | |
| namespace | utils |
|
The µOS++ utilities definitions. More... | |
Description
C++ header file with the inline implementations for the doubly_list_iterator and doubly_list class templates.
Class definitions are located in doubly-list.h. Inline methods are separated into this file to improve project structure and maintainability.
File Listing
The file content with the documentation metadata removed is:
50namespace micro_os_plus::utils
67 constexpr doubly_list_iterator<T, N, U>::doubly_list_iterator () noexcept
68 : node_{}
82 iterator_pointer const node) noexcept
83 : node_{ node }
97 reference element) noexcept
98 : node_{ &element }
111 constexpr typename doubly_list_iterator<T, N, U>::pointer
112 doubly_list_iterator<T, N, U>::operator->() const noexcept
114 return get_pointer ();
129 constexpr typename doubly_list_iterator<T, N, U>::reference
130 doubly_list_iterator<T, N, U>::operator*() const noexcept
132 return *get_pointer ();
144 constexpr doubly_list_iterator<T, N, U>&
145 doubly_list_iterator<T, N, U>::operator++() noexcept
160 constexpr doubly_list_iterator<T, N, U>
161 doubly_list_iterator<T, N, U>::operator++(int) noexcept
164 node_ = static_cast<iterator_pointer> (node_->next ());
177 constexpr doubly_list_iterator<T, N, U>&
178 doubly_list_iterator<T, N, U>::operator--() noexcept
180 node_ = static_cast<iterator_pointer> (node_->previous ());
193 constexpr doubly_list_iterator<T, N, U>
194 doubly_list_iterator<T, N, U>::operator--(int) noexcept
197 node_ = static_cast<iterator_pointer> (node_->previous ());
212 const doubly_list_iterator& other) const noexcept
214 return node_ == other.node_;
225 constexpr typename doubly_list_iterator<T, N, U>::iterator_pointer
226 doubly_list_iterator<T, N, U>::get_iterator_pointer () const noexcept
228 return node_;
238 constexpr typename doubly_list_iterator<T, N, U>::pointer
239 doubly_list_iterator<T, N, U>::get_pointer (void) const noexcept
270 doubly_list<T, L>::doubly_list () noexcept
283 clear ();
300 constexpr doubly_list<T, L>::~doubly_list ()
309 if (!empty ())
327 doubly_list<T, L>::initialised (void) const noexcept
331 return links_.initialised ();
353 doubly_list<T, L>::initialise_once (void) noexcept
359 if constexpr (is_statically_allocated::value)
361 return links_.initialise_once ();
378 doubly_list<T, L>::empty (void) const noexcept
392 template <doubly_list_links_node T, doubly_list_links_node L>
394 doubly_list<T, L>::clear (void) noexcept
400 links_.initialise ();
412 constexpr typename doubly_list<T, L>::pointer
413 doubly_list<T, L>::head (void) const noexcept
427 constexpr typename doubly_list<T, L>::pointer
428 doubly_list<T, L>::tail (void) const noexcept
442 void
443 doubly_list<T, L>::link_tail (reference node) noexcept
450 if constexpr (is_statically_allocated::value)
452 assert (links_.initialised ());
469 doubly_list<T, L>::link_head (reference node) noexcept
478 assert (links_.initialised ());
482 head ()->link_previous (&node);
494 typename doubly_list<T, L>::iterator
495 doubly_list<T, L>::begin () const noexcept
503 assert (links_.initialised ());
506 return iterator{ static_cast<iterator_pointer> (links_.next ()) };
518 typename doubly_list<T, L>::iterator
519 doubly_list<T, L>::end () const noexcept
528 return iterator{ reinterpret_cast<iterator_pointer> (
529 const_cast<links_type*> (&links_)) };
539 typename doubly_list<T, L>::reverse_iterator
540 doubly_list<T, L>::rbegin () const noexcept
542 return reverse_iterator{ end () };
552 typename doubly_list<T, L>::reverse_iterator
553 doubly_list<T, L>::rend () const noexcept
555 return reverse_iterator{ begin () };
566 constexpr const typename doubly_list<T, L>::links_type*
567 doubly_list<T, L>::links_pointer (void) const noexcept
569 return &links_;
Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.17.0.