ttg::detail::Traverse Class Referenceabstract
Inheritance diagram for ttg::detail::Traverse:
ttg::Dot ttg::Traverse< TTVisitor, InVisitor, OutVisitor >

Documentation

Traverses a graph of TTs in depth-first manner following out edges.

Definition at line 14 of file traverse.h.

Classes

struct  null_visitor
 

Public Member Functions

virtual void ttfunc (TTBase *tt)=0
 
virtual void infunc (TerminalBase *in)=0
 
virtual void outfunc (TerminalBase *out)=0
 
void reset ()
 
bool traverse (TTBase *tt)
 
template<typename TT >
std::enable_if_t< std::is_base_of_v< TTBase, TT > &&!std::is_same_v< TT, TTBase >, bool > traverse (TT *tt)
 
template<typename TT >
std::enable_if_t< std::is_base_of_v< TTBase, TT >, bool > traverse (const std::shared_ptr< TTBase > &tt)
 
template<typename TT , typename Deleter >
std::enable_if_t< std::is_base_of_v< TTBase, TT >, bool > traverse (const std::unique_ptr< TT, Deleter > &tt)
 

Member Function Documentation

◆ infunc()

virtual void ttg::detail::Traverse::infunc ( TerminalBase in)
pure virtual

Implemented in ttg::Dot.

◆ outfunc()

virtual void ttg::detail::Traverse::outfunc ( TerminalBase out)
pure virtual

Implemented in ttg::Dot.

◆ reset()

void ttg::detail::Traverse::reset ( )
inline

Definition at line 26 of file traverse.h.

◆ traverse() [1/4]

template<typename TT >
std::enable_if_t<std::is_base_of_v<TTBase, TT>, bool> ttg::detail::Traverse::traverse ( const std::shared_ptr< TTBase > &  tt)
inline

Definition at line 113 of file traverse.h.

◆ traverse() [2/4]

template<typename TT , typename Deleter >
std::enable_if_t<std::is_base_of_v<TTBase, TT>, bool> ttg::detail::Traverse::traverse ( const std::unique_ptr< TT, Deleter > &  tt)
inline

Definition at line 120 of file traverse.h.

◆ traverse() [3/4]

template<typename TT >
std::enable_if_t<std::is_base_of_v<TTBase, TT> && !std::is_same_v<TT, TTBase>, bool> ttg::detail::Traverse::traverse ( TT tt)
inline

Definition at line 106 of file traverse.h.

◆ traverse() [4/4]

bool ttg::detail::Traverse::traverse ( TTBase tt)
inline

Definition at line 30 of file traverse.h.

◆ ttfunc()

virtual void ttg::detail::Traverse::ttfunc ( TTBase tt)
pure virtual

Implemented in ttg::Dot.


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