Skip to main content

The Intrusive Doubly Linked Lists Reference

The µOS++ intrusive doubly linked lists classes. More...

Classes

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...

Description

Intrusive lists are doubly linked lists that keep the two pointers inside each linked object.

The intrusive lists can be defined by instantiating the micro_os_plus::utils::intrusive_list class template.

Example
 
 namespace os = micro_os_plus;
 
 class child
 {
 public:
  child (const char* name);
  // ...
 protected:
  const char* name_;
 
 public:
  // Intrusive node used to link this child to the registry list.
  // Must be public.
  os::utils::double_list_links registry_links_;
 };
 
 using static_children_list = os::utils::intrusive_list<
  child, // type of nodes in the list
  decltype (child::registry_links_), // type of the registry&#95;links&#95; member
  &child::registry_links_, // name of member
  static_double_list_links>; // type of the head links node
 
 // The list head is statically allocated.
 static_children_list kids_registry;

Generated via docusaurus-plugin-doxygen by Doxygen 1.13.2