A toolkit for working with phylogenetic data.
v0.24.0
IteratorEulertour< is_const > Class Template Reference

#include <genesis/tree/iterator/eulertour.hpp>

Detailed Description

template<bool is_const = true>
class genesis::tree::IteratorEulertour< is_const >

Definition at line 59 of file eulertour.hpp.

Public Member Functions

 IteratorEulertour ()
 
 IteratorEulertour (TreeType &tree)
 
 IteratorEulertour (NodeType &node)
 
 IteratorEulertour (LinkType &link)
 
 IteratorEulertour (Subtree const &subtree)
 
 IteratorEulertour (IteratorEulertour const &)=default
 
 IteratorEulertour (IteratorEulertour &&)=default
 
 ~IteratorEulertour ()=default
 
EdgeTypeedge () const
 
bool is_first_iteration () const
 
LinkTypelink () const
 
NodeTypenode () const
 
bool operator!= (const self_type &other) const
 
self_type operator* ()
 
self_typeoperator++ ()
 
self_type operator++ (int)
 
IteratorEulertouroperator= (IteratorEulertour const &)=default
 
IteratorEulertouroperator= (IteratorEulertour &&)=default
 
bool operator== (const self_type &other) const
 
LinkTypestart_link () const
 
NodeTypestart_node () const
 

Public Types

using EdgeType = typename std::conditional< is_const, TreeEdge const, TreeEdge >::type
 
using iterator_category = std::forward_iterator_tag
 
using LinkType = typename std::conditional< is_const, TreeLink const, TreeLink >::type
 
using NodeType = typename std::conditional< is_const, TreeNode const, TreeNode >::type
 
using self_type = IteratorEulertour< is_const >
 
using TreeType = typename std::conditional< is_const, Tree const, Tree >::type
 

Constructor & Destructor Documentation

◆ IteratorEulertour() [1/7]

IteratorEulertour ( )
inline

Definition at line 85 of file eulertour.hpp.

◆ IteratorEulertour() [2/7]

IteratorEulertour ( TreeType tree)
inlineexplicit

Definition at line 90 of file eulertour.hpp.

◆ IteratorEulertour() [3/7]

IteratorEulertour ( NodeType node)
inlineexplicit

Definition at line 95 of file eulertour.hpp.

◆ IteratorEulertour() [4/7]

IteratorEulertour ( LinkType link)
inlineexplicit

Definition at line 100 of file eulertour.hpp.

◆ IteratorEulertour() [5/7]

IteratorEulertour ( Subtree const &  subtree)
inlineexplicit

Definition at line 105 of file eulertour.hpp.

◆ ~IteratorEulertour()

~IteratorEulertour ( )
default

◆ IteratorEulertour() [6/7]

IteratorEulertour ( IteratorEulertour< is_const > const &  )
default

◆ IteratorEulertour() [7/7]

IteratorEulertour ( IteratorEulertour< is_const > &&  )
default

Member Function Documentation

◆ edge()

EdgeType& edge ( ) const
inline

Definition at line 175 of file eulertour.hpp.

◆ is_first_iteration()

bool is_first_iteration ( ) const
inline

Definition at line 160 of file eulertour.hpp.

◆ link()

LinkType& link ( ) const
inline

Definition at line 165 of file eulertour.hpp.

◆ node()

NodeType& node ( ) const
inline

Definition at line 170 of file eulertour.hpp.

◆ operator!=()

bool operator!= ( const self_type other) const
inline

Definition at line 151 of file eulertour.hpp.

◆ operator*()

self_type operator* ( )
inline

Definition at line 125 of file eulertour.hpp.

◆ operator++() [1/2]

self_type& operator++ ( )
inline

Definition at line 130 of file eulertour.hpp.

◆ operator++() [2/2]

self_type operator++ ( int  )
inline

Definition at line 139 of file eulertour.hpp.

◆ operator=() [1/2]

IteratorEulertour& operator= ( IteratorEulertour< is_const > const &  )
default

◆ operator=() [2/2]

IteratorEulertour& operator= ( IteratorEulertour< is_const > &&  )
default

◆ operator==()

bool operator== ( const self_type other) const
inline

Definition at line 146 of file eulertour.hpp.

◆ start_link()

LinkType& start_link ( ) const
inline

Definition at line 180 of file eulertour.hpp.

◆ start_node()

NodeType& start_node ( ) const
inline

Definition at line 185 of file eulertour.hpp.

Member Typedef Documentation

◆ EdgeType

using EdgeType = typename std::conditional< is_const, TreeEdge const, TreeEdge >::type

Definition at line 72 of file eulertour.hpp.

◆ iterator_category

using iterator_category = std::forward_iterator_tag

Definition at line 75 of file eulertour.hpp.

◆ LinkType

using LinkType = typename std::conditional< is_const, TreeLink const, TreeLink >::type

Definition at line 70 of file eulertour.hpp.

◆ NodeType

using NodeType = typename std::conditional< is_const, TreeNode const, TreeNode >::type

Definition at line 71 of file eulertour.hpp.

◆ self_type

using self_type = IteratorEulertour< is_const >

Definition at line 74 of file eulertour.hpp.

◆ TreeType

using TreeType = typename std::conditional< is_const, Tree const, Tree >::type

Definition at line 69 of file eulertour.hpp.


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