ttg::Traverse< TTVisitor, InVisitor, OutVisitor > Class Template Reference
Inheritance diagram for ttg::Traverse< TTVisitor, InVisitor, OutVisitor >:
ttg::detail::Traverse

Documentation

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
class ttg::Traverse< TTVisitor, InVisitor, OutVisitor >

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

Template Parameters
TTVisitorA Callable type that visits each TT
InVisitorA Callable type that visits each In terminal
OutVisitorA Callable type that visits each Out terminal

Definition at line 144 of file traverse.h.

Public Member Functions

template<typename TTVisitor_ = detail::Traverse::null_visitor<TTBase>, typename InVisitor_ = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor_ = detail::Traverse::null_visitor<TerminalBase>>
 Traverse (TTVisitor_ &&tt_v=TTVisitor_{}, InVisitor_ &&in_v=InVisitor_{}, OutVisitor_ &&out_v=OutVisitor_{})
 
const TTVisitor & tt_visitor () const
 
const InVisitor & in_visitor () const
 
const OutVisitor & out_visitor () const
 
template<typename TTBasePtr , typename ... TTBasePtrs>
std::enable_if_t< std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtr >)))> > &&(std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtrs >)))> bool operator() (TTBasePtr &&op, TTBasePtrs &&... ops)
 

Constructor & Destructor Documentation

◆ Traverse()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
template<typename TTVisitor_ = detail::Traverse::null_visitor<TTBase>, typename InVisitor_ = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor_ = detail::Traverse::null_visitor<TerminalBase>>
ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::Traverse ( TTVisitor_ &&  tt_v = TTVisitor_{},
InVisitor_ &&  in_v = InVisitor_{},
OutVisitor_ &&  out_v = OutVisitor_{} 
)
inline

Definition at line 159 of file traverse.h.

Member Function Documentation

◆ in_visitor()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
const InVisitor& ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::in_visitor ( ) const
inline

Definition at line 165 of file traverse.h.

◆ operator()()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
template<typename TTBasePtr , typename ... TTBasePtrs>
std::enable_if_t<std::is_base_of_v<TTBase, std::decay_t<decltype(*(std::declval<TTBasePtr>)))> > && (std::is_base_of_v<TTBase, std::decay_t<decltype(*(std::declval<TTBasePtrs>)))> bool ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::operator() ( TTBasePtr &&  op,
TTBasePtrs &&...  ops 
)
inline

Definition at line 172 of file traverse.h.

◆ out_visitor()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
const OutVisitor& ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::out_visitor ( ) const
inline

Definition at line 166 of file traverse.h.

◆ tt_visitor()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
const TTVisitor& ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::tt_visitor ( ) const
inline

Definition at line 164 of file traverse.h.


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