mCRL2
Loading...
Searching...
No Matches
mcrl2::lts::detail::bisimulation_gj::linked_list_node< T > Struct Template Reference

Private linked list that uses less memory. More...

#include <liblts_bisim_gj.h>

Inheritance diagram for mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >:

Public Types

typedef linked_list_const_iterator< T > const_iterator
 
typedef linked_list_iterator< T > iterator
 

Public Member Functions

template<class... Args>
 linked_list_node (iterator next, iterator prev, Args &&... args)
 
iteratornext ()
 
const const_iteratornext () const
 
iteratorprev ()
 
const const_iteratorprev () const
 
T & content ()
 
 operator T& ()
 
 operator const T & () const
 

Private Attributes

iterator m_next
 
iterator m_prev
 

Detailed Description

template<class T>
struct mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >

Private linked list that uses less memory.

The linked_list type given here is almost a circular list: every element points to the next, except the last one, which contains nullptr as next pointer. The prev pointers are completely circular. This allows to find the last element of the list as well. Additionally, it simplifies walking forward through the list, as end()==nullptr. (Walking backward is slightly more difficult; to enable it, there is an additional iterator before_end().)

Definition at line 238 of file liblts_bisim_gj.h.

Member Typedef Documentation

◆ const_iterator

template<class T >
typedef linked_list_const_iterator<T> mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::const_iterator

Definition at line 241 of file liblts_bisim_gj.h.

◆ iterator

Definition at line 242 of file liblts_bisim_gj.h.

Constructor & Destructor Documentation

◆ linked_list_node()

template<class T >
template<class... Args>
mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::linked_list_node ( iterator  next,
iterator  prev,
Args &&...  args 
)
inline

Definition at line 248 of file liblts_bisim_gj.h.

Member Function Documentation

◆ content()

template<class T >
T & mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::content ( )
inline

Definition at line 274 of file liblts_bisim_gj.h.

◆ next() [1/2]

template<class T >
iterator & mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::next ( )
inline

Definition at line 254 of file liblts_bisim_gj.h.

◆ next() [2/2]

template<class T >
const const_iterator & mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::next ( ) const
inline

Definition at line 259 of file liblts_bisim_gj.h.

◆ operator const T &()

template<class T >
mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::operator const T & ( ) const
inline

Definition at line 284 of file liblts_bisim_gj.h.

◆ operator T&()

template<class T >
mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::operator T& ( )
inline

Definition at line 279 of file liblts_bisim_gj.h.

◆ prev() [1/2]

template<class T >
iterator & mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::prev ( )
inline

Definition at line 264 of file liblts_bisim_gj.h.

◆ prev() [2/2]

template<class T >
const const_iterator & mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::prev ( ) const
inline

Definition at line 269 of file liblts_bisim_gj.h.

Member Data Documentation

◆ m_next

template<class T >
iterator mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::m_next
private

Definition at line 244 of file liblts_bisim_gj.h.

◆ m_prev

template<class T >
iterator mcrl2::lts::detail::bisimulation_gj::linked_list_node< T >::m_prev
private

Definition at line 245 of file liblts_bisim_gj.h.


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