31 template<
class Container,
bool Const>
42 && fulcrum_ ==
rhs.fulcrum_
47 template<
class Container,
bool Const>
58 template<
class Container,
bool Const>
72 template<
class Container,
bool Const>
82 template<
class Container,
bool Const>
85 const iterator& begin,
96 template<
class Container,
bool Const>
111 template<
class Container,
bool Const>
114 return (end_ == begin_);
118 template<
class Container,
bool Const>
122 return (end_ - begin_);
126 template<
class Container,
bool Const>
130 return (iter_ - fulcrum_);
134 template<
class Container,
bool Const>
140 if (dir == CirculatorBase::CLOCKWISE)
144 else if (dir == CirculatorBase::ANTICLOCKWISE)
149 return !(iter_ == fulcrum_);
153 template<
class Container,
bool Const>
160 template<
class Container,
bool Const>
167 template<
class Container,
bool Const>
175 template<
class Container,
bool Const>
179 if (iter_ == end_ - 1)
188 template<
class Container,
bool Const>
203 template<
class Container,
bool Const>
217 fulcrum_ =
rhs.fulcrum_;
221 template<
class Container,
bool Const>
230 template<
class Container,
bool Const>
240 template<
class Container,
bool Const>
249 template<
class Container,
bool Const>
259 template<
class Container,
bool Const>
265 return this->
equal(rhs);
269 template<
class Container,
bool Const>
275 return !this->
equal(rhs);
279 template<
class Container,
bool Const>
287 template<
class Container,
bool Const>
295 template<
class Container,
bool Const>
302 return (iter_ -
rhs.iter_);
reference prev() const
Dereference the previous iterator.
CirculatorIters< Container, Const > & operator--()
Prefix decrement the iterator.
typename Container::difference_type difference_type
The type that represents difference between iterator objects.
direction
Direction type enumeration.
CirculatorIters()
Default construct.
void setFulcrumToIterator()
Set the fulcrum to the current position of the iterator.
void setIteratorToFulcrum()
Set the iterator to the current position of the fulcrum.
void decrement()
Move iterator backward.
difference_type nRotations() const
The distance between the iterator and the fulcrum.
reference curr() const
Dereference the current iterator.
bool equal(const CirculatorIters< Container, Const > &rhs)
Compare for equality.
void rhs(fvMatrix< typename Expr::value_type > &m, const Expr &expression)
reference operator()() const
Dereference the iterator. Same as curr()
A pair of begin/end iterators used for implementing circular iteration.
reference operator*() const
Dereference the iterator. Same as curr()
CirculatorIters< Container, Const > & operator++()
Prefix increment the iterator.
void increment()
Move iterator forward.
size_type size() const
Return the range of the iterator pair.
typename Container::size_type size_type
The type that can represent the size of Container.
bool empty() const
True if begin/end iterators are identical.
bool circulate(const CirculatorBase::direction dir=CirculatorBase::NONE)
Circulate around the list in the given direction.
bool equal(const UList< Type1 > &a, const UList< Type2 > &b)
Test for list equality with different but compatible data types. Eg, int32 and int64.
std::conditional_t< Const, typename Container::const_reference, typename Container::reference > reference
The reference type (const/non-const)
reference next() const
Dereference the next iterator.