Loading...
Searching...
No Matches
intrusive_links.h File Reference
`#include "platform.h"`
`#include "algorithm.h"`
`#include "error_handler.h"`
`#include "exception.h"`
`#include "nullptr.h"`
`#include "type_traits.h"`
`#include "utility.h"`
`#include <stddef.h>`

Go to the source code of this file.

## Classes

class | etl::link_exception
| Link exception. More...
class | etl::not_unlinked_exception
| not unlinked exception. More...
struct | etl::forward_link< ID_ >
| A forward link. More...
struct | etl::is_forward_link< TLink >
struct | etl::bidirectional_link< ID_ >
| A bidirectional link. More...
struct | etl::is_bidirectional_link< TLink >
struct | etl::tree_link< ID_ >
| A binary tree link. More...
struct | etl::is_tree_link< TLink >

## Namespaces

namespace | etl

## Functions

template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link (TLink &lhs, TLink &rhs)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link (TLink *lhs, TLink *rhs)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link (TLink &lhs, TLink *rhs)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link (TLink *lhs, TLink &rhs)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_splice (TLink &lhs, TLink &rhs)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_splice (TLink *lhs, TLink *rhs)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_splice (TLink &lhs, TLink *rhs)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_splice (TLink *lhs, TLink &rhs)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_splice (TLink &lhs, TLink &first, TLink &last)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_splice (TLink *lhs, TLink &first, TLink &last)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, TLink * >::type | etl::unlink_after (TLink &node)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, TLink * >::type | etl::unlink_after (TLink &before, TLink &last)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, bool >::type | etl::is_linked (TLink &node)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, bool >::type | etl::is_linked (TLink *node)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_clear (TLink &start)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_clear (TLink *start)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_clear_range (TLink &start)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::link_clear_range (TLink *start)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::detach_linked_list (TLink &first)
template<typename TLink>
etl::enable_if< etl::is_forward_link< TLink >::value, void >::type | etl::detach_linked_list (TLink *first)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link (TLink &lhs, TLink &rhs)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link (TLink *lhs, TLink *rhs)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link (TLink &lhs, TLink *rhs)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link (TLink *lhs, TLink &rhs)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link_splice (TLink &lhs, TLink &rhs)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link_splice (TLink *lhs, TLink *rhs)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link_splice (TLink &lhs, TLink *rhs)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link_splice (TLink *lhs, TLink &rhs)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link_splice (TLink &lhs, TLink &first, TLink &last)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link_splice (TLink *lhs, TLink &first, TLink &last)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::unlink (TLink &node)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, TLink & >::type | etl::unlink (TLink &first, TLink &last)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, bool >::type | etl::is_linked (TLink &node)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, bool >::type | etl::is_linked (TLink *node)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link_clear_range (TLink &start)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::bidirectional_link< TLink::ID > >::value, void >::type | etl::link_clear_range (TLink *start)
template<typename TLink>
etl::enable_if< etl::is_bidirectional_link< TLink >::value, void >::type | etl::detach_linked_list (TLink &first)
template<typename TLink>
etl::enable_if< etl::is_bidirectional_link< TLink >::value, void >::type | etl::detach_linked_list (TLink *first)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_left (TLink &parent, TLink &child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_left (TLink *parent, TLink *child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_left (TLink &parent, TLink *child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_left (TLink *parent, TLink &child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_right (TLink &parent, TLink &child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_right (TLink *parent, TLink *child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_right (TLink &parent, TLink *child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_right (TLink *parent, TLink &child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate_left (TLink &parent, TLink &child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate_left (TLink *parent, TLink *child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate_left (TLink &parent, TLink *child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate_left (TLink *parent, TLink &child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate_right (TLink &parent, TLink &child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate_right (TLink *parent, TLink *child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate_right (TLink &parent, TLink *child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate_right (TLink *parent, TLink &child)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate (TLink &parent, TLink &child)
| Automatically detects whether a left or right rotate is expected.
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate (TLink *parent, TLink *child)
| Automatically detects whether a left or right rotate is expected.
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate (TLink &parent, TLink *child)
| Automatically detects whether a left or right rotate is expected.
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_rotate (TLink *parent, TLink &child)
| Automatically detects whether a left or right rotate is expected.
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_clear (TLink &node)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, void >::type | etl::link_clear (TLink *node)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, bool >::type | etl::is_linked (TLink &node)
template<typename TLink>
etl::enable_if< etl::is_same< TLink, etl::tree_link< TLink::ID > >::value, bool >::type | etl::is_linked (TLink *node)