mCRL2
|
union: either iterator or counter (for initialisation) More...
#include <liblts_bisim_dnj.h>
Public Member Functions | |
iterator_or_counter () | |
Construct the object as a counter. | |
void | convert_to_iterator (const Iterator other) |
Convert the object from counter to iterator. | |
~iterator_or_counter () | |
Destruct the object as an iterator. | |
Public Attributes | |
trans_type | count |
counter (used during initialisation) | |
Iterator | begin |
iterator (used during main part of the algorithm) | |
union: either iterator or counter (for initialisation)
During initialisation, we need some counters to count the number of transitions for each state. To avoid allocating separate memory for these counters, we store their value in the same place where we later store an iterator.
We assume that each such variable starts out as a counter and at some point becomes an iterator. That point is marked by calling convert_to_iterator(). The structure may only be destroyed after that call, as the destructor assumes it's an iterator.
Definition at line 132 of file liblts_bisim_dnj.h.
|
inline |
Construct the object as a counter.
Definition at line 141 of file liblts_bisim_dnj.h.
|
inline |
Destruct the object as an iterator.
Definition at line 152 of file liblts_bisim_dnj.h.
|
inline |
Convert the object from counter to iterator.
Definition at line 145 of file liblts_bisim_dnj.h.
Iterator mcrl2::lts::detail::bisim_dnj::iterator_or_counter< Iterator >::begin |
iterator (used during main part of the algorithm)
Definition at line 138 of file liblts_bisim_dnj.h.
trans_type mcrl2::lts::detail::bisim_dnj::iterator_or_counter< Iterator >::count |
counter (used during initialisation)
Definition at line 135 of file liblts_bisim_dnj.h.