|
| 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) |
| |
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
-
| TTVisitor | A Callable type that visits each TT |
| InVisitor | A Callable type that visits each In terminal |
| OutVisitor | A Callable type that visits each Out terminal |
Definition at line 144 of file traverse.h.
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 |
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 |