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