CirculatorIters< Container, Const > Class Template Reference

A pair of begin/end iterators used for implementing circular iteration. More...

Inheritance diagram for CirculatorIters< Container, Const >:
[legend]
Collaboration diagram for CirculatorIters< Container, Const >:
[legend]

Public Types

using size_type = typename Container::size_type
 The type that can represent the size of Container. More...
 
using difference_type = typename Container::difference_type
 The type that represents difference between iterator objects. More...
 
using iterator = typename std::conditional< Const, typename Container::const_iterator, typename Container::iterator >::type
 The container iterator type (const/non-const) More...
 
using reference = typename std::conditional< Const, typename Container::const_reference, typename Container::reference >::type
 The reference type (const/non-const) More...
 
- Public Types inherited from CirculatorBase
enum  direction { NONE , CLOCKWISE , ANTICLOCKWISE }
 Direction type enumeration. More...
 

Public Member Functions

 CirculatorIters ()
 Default construct. More...
 
 CirculatorIters (const iterator &begin, const iterator &end)
 Construct from begin/end iterators. More...
 
 CirculatorIters (const CirculatorIters< Container, Const > &rhs)
 Copy construct. More...
 
bool empty () const
 True if begin/end iterators are identical. More...
 
size_type size () const
 Return the range of the iterator pair. More...
 
difference_type nRotations () const
 The distance between the iterator and the fulcrum. More...
 
bool circulate (const CirculatorBase::direction dir=CirculatorBase::NONE)
 
void setFulcrumToIterator ()
 Set the fulcrum to the current position of the iterator. More...
 
void setIteratorToFulcrum ()
 Set the iterator to the current position of the fulcrum. More...
 
reference curr () const
 Dereference the current iterator. More...
 
reference next () const
 Dereference the next iterator. More...
 
reference prev () const
 Dereference the previous iterator. More...
 
void operator= (const CirculatorIters< Container, Const > &rhs)
 
CirculatorIters< Container, Const > & operator++ ()
 Prefix increment the iterator. More...
 
CirculatorIters< Container, Const > operator++ (int)
 Postfix increment the iterator. More...
 
CirculatorIters< Container, Const > & operator-- ()
 Prefix decrement the iterator. More...
 
CirculatorIters< Container, Const > operator-- (int)
 Postfix decrement the iterator. More...
 
bool operator== (const CirculatorIters< Container, Const > &) const
 
bool operator!= (const CirculatorIters< Container, Const > &) const
 
reference operator* () const
 Dereference the iterator. Same as curr() More...
 
reference operator() () const
 Dereference the iterator. Same as curr() More...
 
difference_type operator- (const CirculatorIters< Container, Const > &) const
 
- Public Member Functions inherited from CirculatorBase
 CirculatorBase ()=default
 Default construct. More...
 

Protected Member Functions

bool equal (const CirculatorIters< Container, Const > &rhs)
 Compare for equality. More...
 
void increment ()
 Move iterator forward. More...
 
void decrement ()
 Move iterator backward. More...
 

Detailed Description

template<class Container, bool Const>
class Foam::CirculatorIters< Container, Const >

A pair of begin/end iterators used for implementing circular iteration.

Definition at line 107 of file Circulator.H.

Member Typedef Documentation

◆ size_type

using size_type = typename Container::size_type

The type that can represent the size of Container.

Definition at line 116 of file Circulator.H.

◆ difference_type

using difference_type = typename Container::difference_type

The type that represents difference between iterator objects.

Definition at line 119 of file Circulator.H.

◆ iterator

using iterator = typename std::conditional < Const, typename Container::const_iterator, typename Container::iterator >::type

The container iterator type (const/non-const)

Definition at line 122 of file Circulator.H.

◆ reference

using reference = typename std::conditional < Const, typename Container::const_reference, typename Container::reference >::type

The reference type (const/non-const)

Definition at line 130 of file Circulator.H.

Constructor & Destructor Documentation

◆ CirculatorIters() [1/3]

Default construct.

Definition at line 73 of file CirculatorI.H.

◆ CirculatorIters() [2/3]

CirculatorIters ( const iterator begin,
const iterator end 
)
inline

Construct from begin/end iterators.

Definition at line 83 of file CirculatorI.H.

◆ CirculatorIters() [3/3]

CirculatorIters ( const CirculatorIters< Container, Const > &  rhs)

Copy construct.

Definition at line 97 of file CirculatorI.H.

Member Function Documentation

◆ equal()

bool equal ( const CirculatorIters< Container, Const > &  rhs)
inlineprotected

Compare for equality.

Definition at line 32 of file CirculatorI.H.

◆ increment()

void increment
inlineprotected

Move iterator forward.

Definition at line 48 of file CirculatorI.H.

◆ decrement()

void decrement
inlineprotected

Move iterator backward.

Definition at line 59 of file CirculatorI.H.

◆ empty()

bool empty
inline

True if begin/end iterators are identical.

Definition at line 112 of file CirculatorI.H.

◆ size()

Foam::CirculatorIters< Container, Const >::size_type size
inline

Return the range of the iterator pair.

Definition at line 120 of file CirculatorI.H.

◆ nRotations()

Foam::CirculatorIters< Container, Const >::difference_type nRotations
inline

The distance between the iterator and the fulcrum.

This is equivalent to the number of rotations of the circulator

Definition at line 128 of file CirculatorI.H.

◆ circulate()

bool circulate ( const CirculatorBase::direction  dir = CirculatorBase::NONE)
inline

Circulate around the list in the given direction

Returns
True if iterator has not yet reached the fulcrum

Definition at line 135 of file CirculatorI.H.

References CirculatorBase::ANTICLOCKWISE, and CirculatorBase::CLOCKWISE.

Referenced by face::compare(), and processorPolyPatch::matchFace().

Here is the caller graph for this function:

◆ setFulcrumToIterator()

void setFulcrumToIterator
inline

Set the fulcrum to the current position of the iterator.

Definition at line 154 of file CirculatorI.H.

Referenced by face::compare(), and processorPolyPatch::matchFace().

Here is the caller graph for this function:

◆ setIteratorToFulcrum()

void setIteratorToFulcrum
inline

Set the iterator to the current position of the fulcrum.

Definition at line 161 of file CirculatorI.H.

Referenced by face::compare(), and processorPolyPatch::matchFace().

Here is the caller graph for this function:

◆ curr()

Foam::CirculatorIters< Container, Const >::reference curr
inline

Dereference the current iterator.

Definition at line 169 of file CirculatorI.H.

◆ next()

Foam::CirculatorIters< Container, Const >::reference next
inline

Dereference the next iterator.

Definition at line 177 of file CirculatorI.H.

◆ prev()

Foam::CirculatorIters< Container, Const >::reference prev
inline

Dereference the previous iterator.

Definition at line 190 of file CirculatorI.H.

◆ operator=()

void operator= ( const CirculatorIters< Container, Const > &  rhs)
inline

Assignment operator for circulators operating on the same container type

Definition at line 204 of file CirculatorI.H.

◆ operator++() [1/2]

Foam::CirculatorIters< Container, Const > & operator++
inline

Prefix increment the iterator.

Wraps iterator to the begin if it reaches the end

Definition at line 223 of file CirculatorI.H.

◆ operator++() [2/2]

Foam::CirculatorIters< Container, Const > operator++ ( int  )
inline

Postfix increment the iterator.

Wraps iterator to the begin if it reaches the end

Definition at line 232 of file CirculatorI.H.

◆ operator--() [1/2]

Foam::CirculatorIters< Container, Const > & operator--
inline

Prefix decrement the iterator.

Wraps iterator to the end if it reaches the beginning

Definition at line 242 of file CirculatorI.H.

◆ operator--() [2/2]

Foam::CirculatorIters< Container, Const > operator-- ( int  )
inline

Postfix decrement the iterator.

Wraps iterator to the end if it reaches the beginning

Definition at line 251 of file CirculatorI.H.

◆ operator==()

bool operator== ( const CirculatorIters< Container, Const > &  rhs) const
inline

Check for equality of this iterator with another iterator that operate on the same container type

Definition at line 260 of file CirculatorI.H.

◆ operator!=()

bool operator!= ( const CirculatorIters< Container, Const > &  rhs) const
inline

Check for inequality of this iterator with another iterator that operate on the same container type

Definition at line 270 of file CirculatorI.H.

References Foam::equal().

Here is the call graph for this function:

◆ operator*()

Foam::CirculatorIters< Container, Const >::reference operator*
inline

Dereference the iterator. Same as curr()

Definition at line 281 of file CirculatorI.H.

◆ operator()()

Foam::CirculatorIters< Container, Const >::reference operator()
inline

Dereference the iterator. Same as curr()

Definition at line 289 of file CirculatorI.H.

◆ operator-()

Foam::CirculatorIters< Container, Const >::difference_type operator- ( const CirculatorIters< Container, Const > &  rhs) const
inline

Return the difference between this iterator and another iterator that operate on the same container type

Definition at line 297 of file CirculatorI.H.


The documentation for this class was generated from the following files: