Wraps the iterator of arbitrary cells to provide a common interface. More...
#include <CellIterator.h>
Public Types | |
using | IteratorType = std::conditional_t< modifiable, typename StorageType::iterator, typename StorageType::const_iterator > |
Type of the wrapped iterator. | |
using | ParticleType = std::remove_pointer_t< typename StorageType::value_type > |
Type of the Particles in the storage. | |
using | difference_type = typename IteratorType::difference_type |
Type trait to be compatible with std::iterator. | |
using | value_type = typename IteratorType::value_type |
Type trait to be compatible with std::iterator. | |
using | pointer = typename IteratorType::pointer |
Type trait to be compatible with std::iterator. | |
using | reference = typename IteratorType::reference |
Type trait to be compatible with std::iterator. | |
using | iterator_category = typename IteratorType::iterator_category |
Type trait to be compatible with std::iterator. | |
Public Member Functions | |
CellIterator (IteratorType iterator) | |
Constructor. | |
std::conditional_t< modifiable, ParticleType &, const ParticleType & > | operator* () const |
Dereference operator. | |
std::conditional_t< modifiable, ParticleType *, const ParticleType * > | operator-> () const |
Dereference operator. | |
CellIterator< StorageType, modifiable > & | operator++ () |
Increment the iterator. | |
CellIterator< StorageType, modifiable > & | operator-- () |
Decrement the iterator. | |
bool | operator== (const CellIterator &rhs) const |
Equality operator. | |
bool | operator!= (const CellIterator &rhs) const |
Not equality operator. | |
difference_type | operator- (const CellIterator &rhs) const |
Distance between two iterators. | |
bool | operator< (const CellIterator &rhs) const |
Comparison operator. | |
Wraps the iterator of arbitrary cells to provide a common interface.
Particle_T
and others Particle_T *
. StorageType | Type of the cell, used to derive the particle type. |
modifiable | If false, this is a const iterator, meaning, the underlying particle can not be modified. |
using CellIterator< StorageType, modifiable >::ParticleType = std::remove_pointer_t<typename StorageType::value_type> |
Type of the Particles in the storage.
Should always be the actual type and not a pointer.
|
inlineexplicit |
Constructor.
iterator |
|
inline |
Not equality operator.
rhs |
|
inline |
Dereference operator.
|
inline |
Increment the iterator.
|
inline |
Distance between two iterators.
rhs |
|
inline |
Decrement the iterator.
|
inline |
Dereference operator.
|
inline |
Comparison operator.
rhs |
|
inline |
Equality operator.
rhs |