joque
task orchestration library
joque::bits::list_ptr< Node, Header, Accessor > Class Template Reference

#include <list_ptr.hpp>

Public Types

enum class  mark : std::uintptr_t {
  NODE_TYPE = 0x00 ,
  HEADER_TYPE = 0x01 ,
  NULL_TYPE = 0x02
}
 
using node_type = Node
 
using header_type = Header
 
using accessor_type = Accessor
 

Public Member Functions

 list_ptr () noexcept=default
 
 list_ptr (std::nullptr_t) noexcept
 
 list_ptr (Node *item) noexcept
 
 list_ptr (Header *item) noexcept
 
mark type () const
 
template<typename K >
K * get ()
 
template<typename K >
const K * get () const
 
Node * get_node ()
 
const Node * get_node () const
 
Header * find_header ()
 
const Header * find_header () const
 
void match (auto &&tf, auto &&uf)
 
void match (auto &&tf, auto &&uf) const
 
bool operator== (std::nullptr_t) const
 
bool operator== (const list_ptr &other) const =default
 
auto operator<=> (const list_ptr &other) const =default
 

Member Typedef Documentation

◆ node_type

template<typename Node , typename Header , typename Accessor >
using joque::bits::list_ptr< Node, Header, Accessor >::node_type = Node

◆ header_type

template<typename Node , typename Header , typename Accessor >
using joque::bits::list_ptr< Node, Header, Accessor >::header_type = Header

◆ accessor_type

template<typename Node , typename Header , typename Accessor >
using joque::bits::list_ptr< Node, Header, Accessor >::accessor_type = Accessor

Member Enumeration Documentation

◆ mark

template<typename Node , typename Header , typename Accessor >
enum joque::bits::list_ptr::mark : std::uintptr_t
strong
Enumerator
NODE_TYPE 
HEADER_TYPE 
NULL_TYPE 

Constructor & Destructor Documentation

◆ list_ptr() [1/4]

template<typename Node , typename Header , typename Accessor >
joque::bits::list_ptr< Node, Header, Accessor >::list_ptr ( )
defaultnoexcept

◆ list_ptr() [2/4]

template<typename Node , typename Header , typename Accessor >
joque::bits::list_ptr< Node, Header, Accessor >::list_ptr ( std::nullptr_t  )
inlinenoexcept

◆ list_ptr() [3/4]

template<typename Node , typename Header , typename Accessor >
joque::bits::list_ptr< Node, Header, Accessor >::list_ptr ( Node *  item)
inlinenoexcept

◆ list_ptr() [4/4]

template<typename Node , typename Header , typename Accessor >
joque::bits::list_ptr< Node, Header, Accessor >::list_ptr ( Header *  item)
inlinenoexcept

Member Function Documentation

◆ type()

template<typename Node , typename Header , typename Accessor >
mark joque::bits::list_ptr< Node, Header, Accessor >::type ( ) const
inline

◆ get() [1/2]

template<typename Node , typename Header , typename Accessor >
template<typename K >
K* joque::bits::list_ptr< Node, Header, Accessor >::get ( )
inline

◆ get() [2/2]

template<typename Node , typename Header , typename Accessor >
template<typename K >
const K* joque::bits::list_ptr< Node, Header, Accessor >::get ( ) const
inline

◆ get_node() [1/2]

template<typename Node , typename Header , typename Accessor >
Node* joque::bits::list_ptr< Node, Header, Accessor >::get_node ( )
inline

◆ get_node() [2/2]

template<typename Node , typename Header , typename Accessor >
const Node* joque::bits::list_ptr< Node, Header, Accessor >::get_node ( ) const
inline

◆ find_header() [1/2]

template<typename Node , typename Header , typename Accessor >
Header* joque::bits::list_ptr< Node, Header, Accessor >::find_header ( )
inline

◆ find_header() [2/2]

template<typename Node , typename Header , typename Accessor >
const Header* joque::bits::list_ptr< Node, Header, Accessor >::find_header ( ) const
inline

◆ match() [1/2]

template<typename Node , typename Header , typename Accessor >
void joque::bits::list_ptr< Node, Header, Accessor >::match ( auto &&  tf,
auto &&  uf 
)
inline

◆ match() [2/2]

template<typename Node , typename Header , typename Accessor >
void joque::bits::list_ptr< Node, Header, Accessor >::match ( auto &&  tf,
auto &&  uf 
) const
inline

◆ operator==() [1/2]

template<typename Node , typename Header , typename Accessor >
bool joque::bits::list_ptr< Node, Header, Accessor >::operator== ( std::nullptr_t  ) const
inline

◆ operator==() [2/2]

template<typename Node , typename Header , typename Accessor >
bool joque::bits::list_ptr< Node, Header, Accessor >::operator== ( const list_ptr< Node, Header, Accessor > &  other) const
default

◆ operator<=>()

template<typename Node , typename Header , typename Accessor >
auto joque::bits::list_ptr< Node, Header, Accessor >::operator<=> ( const list_ptr< Node, Header, Accessor > &  other) const
default

The documentation for this class was generated from the following file: