ROSE  0.11.109.0
Public Types | Public Member Functions | Static Public Attributes | List of all members
Rose::Traits::traversal_details::FieldTreeTraversal< ParentNodeT, PreFuncT, PostFuncT > Struct Template Reference

Description

template<typename ParentNodeT, typename PreFuncT, typename PostFuncT>
struct Rose::Traits::traversal_details::FieldTreeTraversal< ParentNodeT, PreFuncT, PostFuncT >

Definition at line 45 of file Traversal.h.

Public Types

template<typename F , typename N >
using enable_nop = std::enable_if_t< do_nothing< F, N >>
 
template<typename F , typename N >
using enable_call = std::enable_if_t<!do_nothing< F, N > &&!F::iterable >
 
template<typename F , typename N >
using enable_iterate = std::enable_if_t<!do_nothing< F, N > &&F::iterable >
 

Public Member Functions

template<typename FieldT , typename ChildNodeT , enable_nop< FieldT, ChildNodeT > * = nullptr>
void operator() (ChildNodeT *node, PreFuncT &pre, PostFuncT &post) const
 
template<typename FieldT , typename ChildNodeT , enable_call< FieldT, ChildNodeT > * = nullptr>
void operator() (ChildNodeT *node, PreFuncT &pre, PostFuncT &post) const
 
template<typename FieldT , typename ChildNodeT , enable_iterate< FieldT, ChildNodeT > * = nullptr>
void operator() (ChildNodeT *node, PreFuncT &pre, PostFuncT &post) const
 

Static Public Attributes

template<typename ChildNodeT >
static constexpr bool is_match = std::is_same<ParentNodeT, ChildNodeT>::value
 
template<typename F , typename N >
static constexpr bool do_nothing = !is_match<N> || !F::traverse
 

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