PolyBoRi
CGenericIter.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 //*****************************************************************************
13 //*****************************************************************************
14 
15 #ifndef polybori_iterators_CGenericIter_h_
16 #define polybori_iterators_CGenericIter_h_
17 
18 // include basic definitions
19 #include <polybori/pbori_defs.h>
21 
22 // get stuff for term iteration
23 #include "CStackSelector.h"
24 #include "CTermIter.h"
25 #include "CTermGenerator.h"
26 
28 
29 template <class OrderType, class NaviType, class RefType>
30 struct pbori_base<CGenericIter<OrderType, NaviType, RefType> > {
31 
33 
35 };
36 
37 
38 template <class OrderType, class NaviType, class RefType>
39 class CGenericIter:
40  public pbori_base<CGenericIter<OrderType, NaviType, RefType> >::type {
41 
42 public:
44  typedef typename base::term_generator term_generator;
45 
46  template <class MgrType>
47  CGenericIter(NaviType navi, const MgrType& mgr): base(navi, mgr) {}
48  // CGenericIter(): base() {}
49 };
50 
51 #if 0
52 template <class OrderType, class NaviType>
53 class CGenericIter<OrderType, NaviType, BooleMonomial>:
54  public pbori_base<CGenericIter<OrderType, NaviType, BooleMonomial> >::type {
55 
56 public:
57  typedef typename pbori_base<CGenericIter>::type base;
58  typedef typename base::term_generator term_generator;
59 
60  template <class MgrType>
61  CGenericIter(NaviType navi, const MgrType& mgr): base(navi, mgr) {}
62 
63  // CGenericIter(): base() {}
64 };
65 #endif
66 
68 template <class OrderType, class NaviType, class RefType>
69 struct pbori_base<CReverseIter<OrderType, NaviType, RefType> > {
70 
72 
74 };
75 
76 
77 template <class OrderType, class NaviType, class RefType>
78 class CReverseIter:
79  public pbori_base<CReverseIter<OrderType, NaviType, RefType> >::type {
80 
81 public:
83  typedef typename base::term_generator term_generator;
84 
85  template <class MgrType>
86  CReverseIter(NaviType navi, const MgrType& mgr): base(navi, mgr) {}
87 
88  // CReverseIter(): base() {}
89 };
90 
91 
92 
94 
95 #endif
This class defines an iterator for the monomials in a Boolean polynomial in reversed lexicographicxal...
Definition: CTermStack.h:527
pbori_base< CGenericIter >::type base
Definition: CGenericIter.h:43
#define END_NAMESPACE_PBORI
Finish project's namespace.
Definition: pbori_defs.h:77
#define BEGIN_NAMESPACE_PBORI
Start project's namespace.
Definition: pbori_defs.h:74
base::term_generator term_generator
Definition: CGenericIter.h:44
CReverseTermStack< NaviType, std::bidirectional_iterator_tag > stack_type
Definition: CGenericIter.h:71
on_same_type< block_prop, valid_tag, block_type, nonblock_type >::type type
The resulting type for iterator's stack.
Definition: CStackSelector.h:67
CStackSelector< OrderType, NaviType >::type stack_type
Definition: CGenericIter.h:32
Definition: pbori_func.h:881
CGenericIter(NaviType navi, const MgrType &mgr)
Definition: CGenericIter.h:47
This class defines an iterator for the monomials in a Boolean polynomial.
Definition: CTermIter.h:44
base::term_generator term_generator
Definition: CGenericIter.h:83
Definition: BooleSet.h:41
Definition: BoolePolynomial.h:70
CTermIter< stack_type, CTermGenerator< RefType > > type
Definition: CGenericIter.h:34
pbori_base< CReverseIter >::type base
Definition: CGenericIter.h:82
CReverseIter(NaviType navi, const MgrType &mgr)
Definition: CGenericIter.h:86
CTermIter< stack_type, CTermGenerator< RefType > > type
Definition: CGenericIter.h:73