Skip to content

DIWNE::NodeIterator

More...

#include "DIWNE/Core/diwne_iterators.h"

Inherits from DIWNE::NodeIteratorImpl< Node, false >, DIWNE::BidirectionalNodeIterator< NodeIteratorImpl< NodeType, IsConst >, NodeType, IsConst >, DIWNE::ForwardNodeIterator< Iterator, NodeType, IsConst >, DIWNE::ForwardIteratorBase< Iterator, NodeType, IsConst >

Public Types

Name
using std::random_access_iterator_tagiterator_category
using typename Super::shared_pointershared_pointer

Protected Types

Name
using NodeIteratorImpl< NodeType, false >Super

Public Functions

Name
NodeIterator()
NodeIterator(typename Super::Container nodes, std::size_t idx)

Additional inherited members

Protected Types inherited from DIWNE::NodeIteratorImpl< Node, false >

Name
using NodeIteratorImpl< NodeType, IsConst >Iterator

Public Functions inherited from DIWNE::NodeIteratorImpl< Node, false >

Name
NodeIteratorImpl()
NodeIteratorImpl(typename Super::Container nodes, std::size_t idx)
Iteratoroperator+(difference_type rhs) const
Iterator &operator+=(difference_type rhs)
Iteratoroperator-(difference_type rhs) const
Iterator &operator-=(difference_type rhs)
booloperator<(const Iterator & rhs) const
booloperator<=(const Iterator & rhs) const
booloperator>(const Iterator & rhs) const
booloperator>=(const Iterator & rhs) const
referenceoperator[](difference_type idx) const

Public Functions inherited from DIWNE::BidirectionalNodeIterator< NodeIteratorImpl< NodeType, IsConst >, NodeType, IsConst >

Name
BidirectionalNodeIterator()
BidirectionalNodeIterator(Super::Container nodes, std::size_t idx)
virtual voidback()<br>Move the iterator to the previous position.
Iterator &operator--()
Iteratoroperator--(int )
boolvalid() 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)
referencedereference() const
boolequals(const Iterator & b) const<br>Determines whether this iterator is pointing to the same element as another one (used by the == operator)
voidnext()<br>Advance the iterator.
pointerptr() const
shared_pointersharedPtr() const
boolvalid() 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_tdifference_type
using typename std::conditional< IsConst, const Value *, Value * >::typepointer
using typename std::conditional< IsConst, const Value &, Value & >::typereference
using typename std::conditional< IsConst, const Value, Value >::typevalue_type

Public Functions inherited from DIWNE::ForwardIteratorBase< Iterator, NodeType, IsConst >

Name
referenceoperator*()
Iterator &operator++()
Iteratoroperator++(int )
pointeroperator->()

Protected Functions inherited from DIWNE::ForwardIteratorBase< Iterator, NodeType, IsConst >

Name
ForwardIteratorBase()
virtual~ForwardIteratorBase() =default
referencedereference() const<br>Return a reference to the current element (reference to a value type, not a pointer).
boolequals(const Iterator & b) const<br>Determines whether this iterator is pointing to the same element as another one (used by the == operator)
voidnext()<br>Advance the iterator.
pointerptr() 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.
boolvalid() 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
booloperator!=(const Iterator & a, const Iterator & b)
booloperator==(const Iterator & a, const Iterator & b)

Detailed Description

cpp
template <typename NodeType  =Node>
class DIWNE::NodeIterator;
template <typename NodeType  =Node>
class DIWNE::NodeIterator;

Public Types Documentation

using iterator_category

cpp
using DIWNE::NodeIterator< NodeType >::iterator_category =  std::random_access_iterator_tag;
using DIWNE::NodeIterator< NodeType >::iterator_category =  std::random_access_iterator_tag;

using shared_pointer

cpp
using DIWNE::NodeIterator< NodeType >::shared_pointer =  typename Super::shared_pointer;
using DIWNE::NodeIterator< NodeType >::shared_pointer =  typename Super::shared_pointer;

Protected Types Documentation

using Super

cpp
using DIWNE::NodeIterator< NodeType >::Super =  NodeIteratorImpl<NodeType, false>;
using DIWNE::NodeIterator< NodeType >::Super =  NodeIteratorImpl<NodeType, false>;

Public Functions Documentation

function NodeIterator

cpp
inline NodeIterator()
inline NodeIterator()

function NodeIterator

cpp
inline NodeIterator(
    typename Super::Container nodes,
    std::size_t idx
)
inline NodeIterator(
    typename Super::Container nodes,
    std::size_t idx
)

Updated on 2025-05-31 at 12:55:31 +0000