utils-lists 4.0.0
µOS++ C++ intrusive lists utilities
Loading...
Searching...
No Matches
Intrusive double linked lists

Classes

class  micro_os_plus::utils::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  micro_os_plus::utils::intrusive_list_iterator< T, N, MP, U >
 A class template for an intrusive list iterator. More...
 

Detailed Description

Intrusive lists are double 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_links_` 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;