15 #ifndef polybori_iterators_CTermIter_h_
16 #define polybori_iterators_CTermIter_h_
29 #include <boost/iterator/iterator_facade.hpp>
43 template <
class StackType,
class TermGeneratorType>
45 public boost::iterator_facade<
46 CTermIter<StackType, TermGeneratorType>,
47 typename TermGeneratorType::value_type,
48 typename StackType::iterator_category,
49 typename TermGeneratorType::result_type
78 typedef typename stack_type::const_reverse_iterator
84 m_getTerm(rhs.m_getTerm), m_stack(rhs.m_stack) {
88 template <
class MgrType>
90 m_getTerm(mgr), m_stack(navi, mgr) {
109 return m_stack.equal(rhs.
m_stack);
114 return m_getTerm(m_stack);
145 return m_stack.navigation();