cycle_ptr
|
Internally used datastructure for llist. More...
#include <llist.h>
Public Member Functions | |
constexpr | link () noexcept=default |
Default constructor. | |
~link () noexcept | |
Destructor. | |
Protected Member Functions | |
constexpr | link ([[maybe_unused]] const link &other) noexcept |
Constructor. More... | |
constexpr auto | operator= ([[maybe_unused]] const link &other) noexcept -> link & |
Assignment. More... | |
constexpr auto | linked () const noexcept -> bool |
Test if this is linked into a linked list. More... | |
Friends | |
template<typename , typename > | |
class | llist |
Internally used datastructure for llist.
The link holds the preceding and successive pointers, to enable implementing a doubly linked list.
The head constructor (selected using llist_head_tag) turns the linked list into a circular list.
Tag | Discriminant tag. |
|
inlineprotectednoexcept |
Constructor.
Link pointers are not a property of derived class, so we don't update the owner list.
This constructor exists so that derived classes can have a copy/move constructor defaulted.
|
inlineprotectednoexcept |
Test if this is linked into a linked list.
|
inlineprotectednoexcept |
Assignment.
Link pointers are not a property of derived class, so we don't update the owner list.
This method exists so that derived classes can have a copy/move assignment defaulted.