15 #ifndef polybori_iterators_CVariableIter_h_
16 #define polybori_iterators_CVariableIter_h_
31 template <
class Iterator,
class VariableType>
33 public boost::iterator_facade<
34 CVariableIter<Iterator, VariableType>,
36 typename Iterator::iterator_category,
58 m_iter(rhs), m_ring(ring) {}
61 bool isEnd()
const {
return m_iter.isEnd(); }
67 var_type
dereference()
const {
return var_type(*m_iter, m_ring); }
70 bool equal(
const self& rhs)
const {
return m_iter == rhs.m_iter; }
83 #endif // CVariableIter_h_
#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
CVariableIter(const iterator_type &rhs, const ring_type &ring)
Constructor for given iterator (and ring)
Definition: CVariableIter.h:57
void increment()
Increment operation.
Definition: CVariableIter.h:64
This template class defines an iterator for monomial types.
Definition: CVariableIter.h:32
var_type::ring_type ring_type
Fixing ring, which is used to generate variables.
Definition: CVariableIter.h:48
bool equal(const self &rhs) const
Equality check.
Definition: CVariableIter.h:70
var_type dereference() const
Constant dereference operator.
Definition: CVariableIter.h:67
VariableType var_type
Fixing variables, which is used for dereferencing.
Definition: CVariableIter.h:45
Iterator iterator_type
Fixing Iterator type to be extended.
Definition: CVariableIter.h:42
CVariableIter()
Default constructor.
Definition: CVariableIter.h:54
bool isEnd() const
Check, whether end of iteration is reached.
Definition: CVariableIter.h:61