LibraryLink Utilities  3.0.1
Modern C++ wrapper over LibraryLink and WSTP
LLU::DataStoreIterator Class Reference

Description

Proxy input iterator over DataStoreNodes, when dereferenced yields GenericDataNode proxy objects.

#include <DataStore.hpp>

Public Types

using value_type = GenericDataNode
 This iterator returns proxy objects of type GenericDataNode. More...
 
using reference = value_type
 DataStoreIterator is a proxy iterator and so the reference type is the same as value_type. More...
 
using iterator_category = std::input_iterator_tag
 As with all proxy iterators, DataStoreIterator is only an input iterator. More...
 
using pointer = value_type
 DataStoreIterator is a proxy iterator and so the pointer type is the same as value_type. More...
 
using difference_type = mint
 Provide difference_type as required for input iterators. More...
 

Public Member Functions

 DataStoreIterator (DataStoreNode n)
 Create a DataStoreIterator pointing to a given node. More...
 
reference operator* () const
 Get proxy object of the current node. More...
 
pointer operator-> () const
 Get proxy object of the current node. More...
 
DataStoreIteratoroperator++ ()
 Pre-increment operator. More...
 
DataStoreIterator operator++ (int)
 Post-increment operator. More...
 

Friends

bool operator== (const DataStoreIterator &lhs, const DataStoreIterator &rhs)
 "Equal to" operator for DataStoreIterators More...
 
bool operator!= (const DataStoreIterator &lhs, const DataStoreIterator &rhs)
 "Not equal to" operator for DataStoreIterators More...
 

Type aliases documentation

◆ difference_type

Provide difference_type as required for input iterators.

◆ iterator_category

using LLU::DataStoreIterator::iterator_category = std::input_iterator_tag

As with all proxy iterators, DataStoreIterator is only an input iterator.

◆ pointer

DataStoreIterator is a proxy iterator and so the pointer type is the same as value_type.

◆ reference

DataStoreIterator is a proxy iterator and so the reference type is the same as value_type.

◆ value_type

This iterator returns proxy objects of type GenericDataNode.

Constructor & Destructor Documentation

◆ DataStoreIterator()

LLU::DataStoreIterator::DataStoreIterator ( DataStoreNode  n)
inlineexplicit

Create a DataStoreIterator pointing to a given node.

Member Function Documentation

◆ operator*()

reference LLU::DataStoreIterator::operator* ( ) const
inline

Get proxy object of the current node.

Returns
proxy object of current node

◆ operator++() [1/2]

DataStoreIterator& LLU::DataStoreIterator::operator++ ( )
inline

Pre-increment operator.

Returns
this

◆ operator++() [2/2]

DataStoreIterator LLU::DataStoreIterator::operator++ ( int  )
inline

Post-increment operator.

Returns
"old" copy of the iterator object

◆ operator->()

pointer LLU::DataStoreIterator::operator-> ( ) const
inline

Get proxy object of the current node.

Returns
proxy object of current node

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const DataStoreIterator lhs,
const DataStoreIterator rhs 
)
friend

"Not equal to" operator for DataStoreIterators

Parameters
lhs- a DataStoreIterator
rhs- a DataStoreIterator
Returns
false iff both iterators point to the same node

◆ operator==

bool operator== ( const DataStoreIterator lhs,
const DataStoreIterator rhs 
)
friend

"Equal to" operator for DataStoreIterators

Parameters
lhs- a DataStoreIterator
rhs- a DataStoreIterator
Returns
true iff both iterators point to the same node