DIWNE::NodeIteratorImpl
#include "DIWNE/Core/diwne_iterators.h"
Inherits from DIWNE::BidirectionalNodeIterator< NodeIteratorImpl< NodeType, IsConst >, NodeType, IsConst >, DIWNE::ForwardNodeIterator< Iterator, NodeType, IsConst >, DIWNE::ForwardIteratorBase< Iterator, NodeType, IsConst >
Inherited by DIWNE::ConstNodeIterator< NodeType >, DIWNE::NodeIterator< NodeType >
Public Types
Name | |
---|---|
using std::random_access_iterator_tag | iterator_category |
using typename Super::shared_pointer | shared_pointer |
Protected Types
Name | |
---|---|
using NodeIteratorImpl< NodeType, IsConst > | Iterator |
using BidirectionalNodeIterator< NodeIteratorImpl< NodeType, IsConst >, NodeType, IsConst > | Super |
Public Functions
Name | |
---|---|
NodeIteratorImpl() | |
NodeIteratorImpl(typename Super::Container nodes, std::size_t idx) | |
Iterator | operator+(difference_type rhs) const |
Iterator & | operator+=(difference_type rhs) |
Iterator | operator-(difference_type rhs) const |
Iterator & | operator-=(difference_type rhs) |
bool | operator<(const Iterator & rhs) const |
bool | operator<=(const Iterator & rhs) const |
bool | operator>(const Iterator & rhs) const |
bool | operator>=(const Iterator & rhs) const |
reference | operator[](difference_type idx) const |
Additional inherited members
Public Functions inherited from DIWNE::BidirectionalNodeIterator< NodeIteratorImpl< NodeType, IsConst >, NodeType, IsConst >
Name | |
---|---|
BidirectionalNodeIterator() | |
BidirectionalNodeIterator(Super::Container nodes, std::size_t idx) | |
virtual void | back()<br>Move the iterator to the previous position. |
Iterator & | operator--() |
Iterator | operator--(int ) |
bool | valid() const |
Public Types inherited from DIWNE::ForwardNodeIterator< Iterator, NodeType, IsConst >
Name | |
---|---|
using const NodeList * | Container |
Public Functions inherited from DIWNE::ForwardNodeIterator< Iterator, NodeType, IsConst >
Name | |
---|---|
ForwardNodeIterator() | |
ForwardNodeIterator(Container nodes, std::size_t idx) | |
reference | dereference() const |
bool | equals(const Iterator & b) const<br>Determines whether this iterator is pointing to the same element as another one (used by the == operator) |
void | next()<br>Advance the iterator. |
pointer | ptr() const |
shared_pointer | sharedPtr() const |
bool | valid() const<br>Check whether the iterator is pointing at a valid element (eg. not the end of a container) |
Protected Attributes inherited from DIWNE::ForwardNodeIterator< Iterator, NodeType, IsConst >
Name | |
---|---|
std::size_t | _idx <br>Current node index // TODO: Should probably be an int. |
Container | _nodes <br>Reference to the node list. |
Public Types inherited from DIWNE::ForwardIteratorBase< Iterator, NodeType, IsConst >
Name | |
---|---|
using std::ptrdiff_t | difference_type |
using typename std::conditional< IsConst, const Value *, Value * >::type | pointer |
using typename std::conditional< IsConst, const Value &, Value & >::type | reference |
using typename std::conditional< IsConst, const Value, Value >::type | value_type |
Public Functions inherited from DIWNE::ForwardIteratorBase< Iterator, NodeType, IsConst >
Name | |
---|---|
reference | operator*() |
Iterator & | operator++() |
Iterator | operator++(int ) |
pointer | operator->() |
Protected Functions inherited from DIWNE::ForwardIteratorBase< Iterator, NodeType, IsConst >
Name | |
---|---|
ForwardIteratorBase() | |
virtual | ~ForwardIteratorBase() =default |
reference | dereference() const<br>Return a reference to the current element (reference to a value type, not a pointer). |
bool | equals(const Iterator & b) const<br>Determines whether this iterator is pointing to the same element as another one (used by the == operator) |
void | next()<br>Advance the iterator. |
pointer | ptr() const<br>Return a raw pointer to the current element. |
Iterator * | self()<br>CRTP self pointer (pointer to the derived type) |
const Iterator * | self() const<br>CRTP const self pointer. |
std::shared_ptr< Value > | sharedPtr() const<br>Return the owning pointer to the current element. Creates a new shared pointer object. |
bool | valid() const<br>Check whether the iterator is pointing at a valid element (eg. not the end of a container) |
Friends inherited from DIWNE::ForwardIteratorBase< Iterator, NodeType, IsConst >
Name | |
---|---|
bool | operator!=(const Iterator & a, const Iterator & b) |
bool | operator==(const Iterator & a, const Iterator & b) |
Detailed Description
template <typename NodeType ,
bool IsConst>
class DIWNE::NodeIteratorImpl;
template <typename NodeType ,
bool IsConst>
class DIWNE::NodeIteratorImpl;
Public Types Documentation
using iterator_category
using DIWNE::NodeIteratorImpl< NodeType, IsConst >::iterator_category = std::random_access_iterator_tag;
using DIWNE::NodeIteratorImpl< NodeType, IsConst >::iterator_category = std::random_access_iterator_tag;
using shared_pointer
using DIWNE::NodeIteratorImpl< NodeType, IsConst >::shared_pointer = typename Super::shared_pointer;
using DIWNE::NodeIteratorImpl< NodeType, IsConst >::shared_pointer = typename Super::shared_pointer;
Protected Types Documentation
using Iterator
using DIWNE::NodeIteratorImpl< NodeType, IsConst >::Iterator = NodeIteratorImpl<NodeType, IsConst>;
using DIWNE::NodeIteratorImpl< NodeType, IsConst >::Iterator = NodeIteratorImpl<NodeType, IsConst>;
using Super
using DIWNE::NodeIteratorImpl< NodeType, IsConst >::Super = BidirectionalNodeIterator<NodeIteratorImpl<NodeType, IsConst>, NodeType, IsConst>;
using DIWNE::NodeIteratorImpl< NodeType, IsConst >::Super = BidirectionalNodeIterator<NodeIteratorImpl<NodeType, IsConst>, NodeType, IsConst>;
Public Functions Documentation
function NodeIteratorImpl
inline NodeIteratorImpl()
inline NodeIteratorImpl()
function NodeIteratorImpl
inline NodeIteratorImpl(
typename Super::Container nodes,
std::size_t idx
)
inline NodeIteratorImpl(
typename Super::Container nodes,
std::size_t idx
)
function operator+
inline Iterator operator+(
difference_type rhs
) const
inline Iterator operator+(
difference_type rhs
) const
function operator+=
inline Iterator & operator+=(
difference_type rhs
)
inline Iterator & operator+=(
difference_type rhs
)
function operator-
inline Iterator operator-(
difference_type rhs
) const
inline Iterator operator-(
difference_type rhs
) const
function operator-=
inline Iterator & operator-=(
difference_type rhs
)
inline Iterator & operator-=(
difference_type rhs
)
function operator<
inline bool operator<(
const Iterator & rhs
) const
inline bool operator<(
const Iterator & rhs
) const
function operator<=
inline bool operator<=(
const Iterator & rhs
) const
inline bool operator<=(
const Iterator & rhs
) const
function operator>
inline bool operator>(
const Iterator & rhs
) const
inline bool operator>(
const Iterator & rhs
) const
function operator>=
inline bool operator>=(
const Iterator & rhs
) const
inline bool operator>=(
const Iterator & rhs
) const
function operator[]
inline reference operator[](
difference_type idx
) const
inline reference operator[](
difference_type idx
) const
Updated on 2025-05-31 at 12:55:31 +0000