98 #ifndef CGenericIter_h_
99 #define CGenericIter_h_
103 template <
class OrderType,
class NaviType,
class RefType>
104 struct pbori_base<CGenericIter<OrderType, NaviType, RefType> > {
106 typedef typename CStackSelector<OrderType, NaviType>::type stack_type;
108 typedef CTermIter<stack_type, CTermGenerator<RefType> > type;
112 template <
class OrderType,
class NaviType,
class RefType>
114 public pbori_base<CGenericIter<OrderType, NaviType, RefType> >::type {
117 typedef typename pbori_base<CGenericIter>::type base;
118 typedef typename base::term_generator term_generator;
120 template <
class MgrType>
121 CGenericIter(NaviType navi,
const MgrType& mgr): base(navi, mgr) {}
122 CGenericIter(): base() {}
125 template <
class OrderType,
class NaviType>
126 class CGenericIter<OrderType, NaviType, BooleMonomial>:
127 public pbori_base<CGenericIter<OrderType, NaviType, BooleMonomial> >::type {
130 typedef typename pbori_base<CGenericIter>::type base;
131 typedef typename base::term_generator term_generator;
133 template <
class MgrType>
134 CGenericIter(NaviType navi,
const MgrType& mgr): base(navi, mgr) {}
136 CGenericIter(): base() {}