CoreComponents 3.0.0
A Modern C++ Toolkit
Loading...
Searching...
No Matches
Iterator< Container > Class Template Reference

Value iterator. More...

#include <cc/Iterator>

Inheritance diagram for Iterator< Container >:

Public Types

using iterator_category = std::bidirectional_iterator_tag
 
using value_type = typename Container::Item
 
using difference_type = long
 
using pointer = typename Container::Item *
 
using reference = typename Container::Item &
 
using Item = typename Container::Item
 Item type.
 
using Access = typename MakeAccessType<Item, std::is_const<Container>::value>::Type
 Item access type.
 

Public Member Functions

 Iterator (const Locator &pos)
 Create a value iterator from the locator pos.
 
Accessoperator* () const
 Get access to current item value.
 
long operator+ () const
 Return the index value of the iterator (unary plus operator)
 
Iteratoroperator++ ()
 Step to the next item (prefix increment operator)
 
Iteratoroperator-- ()
 Step to the previous item (prefix decrement operator)
 
Iterator operator++ (int)
 Step to the next item and return the old iterator value (postfix increment operator)
 
Iterator operator-- (int)
 Step to the previous item and return the old iterator value (postfix decrement operator)
 
Iterator operator+ (long delta)
 Get iterator value stepped delta items forward (addition operator)
 
Iterator operator- (long delta)
 Get iterator value stepped delta items backward (substraction operator)
 
long operator- (const Iterator &b) const
 Get distance between this and another iterator (substraction operator)
 
bool operator== (const Iterator &b) const
 Equality operator.
 
std::strong_ordering operator<=> (const Iterator &b) const
 Ordering operator.
 
 operator bool () const
 Check if this iterator is valid (explicitly cast to bool)
 
- Public Member Functions inherited from Locator
 Locator (long index=0)
 Create a locator pointing to index.
 
long index () const
 Return the index value of the locator (unary plus operator)
 
long operator+ () const
 Return the index value of the locator (unary plus operator)
 
Locatoroperator++ ()
 Step to the next item (prefix increment operator)
 
Locatoroperator-- ()
 Step to the previous item (prefix decrement operator)
 
Locator operator++ (int)
 Step to the next item and return the old locator value (postfix increment operator)
 
Locator operator-- (int)
 Step to the previous item and return the old locator value (postfix decrement operator)
 
Locator operator+ (long delta)
 Get locator value stepped delta items forward (addition operator)
 
Locator operator- (long delta)
 Get locator value stepped delta items backward (substraction operator)
 
long operator- (const Locator &other) const
 Get distance between this and another locator (substraction operator)
 
bool operator== (const Locator &other) const
 Equality operator.
 
std::strong_ordering operator<=> (const Locator &other) const
 Ordering operator.
 
bool isValid () const
 Check if this locator is valid.
 
 operator bool () const
 Check if this locator is valid.
 

Additional Inherited Members

- Protected Member Functions inherited from Locator
 Locator (const unsigned *revision, long index, BucketStop *stop, unsigned egress)
 
void stepNext ()
 
void stepBack ()
 
- Protected Attributes inherited from Locator
long index_
 
BucketStop * stop_
 
unsigned egress_
 
unsigned revisionSaved_ { 0 }
 
const unsigned * revisionPtr_ { &revisionSaved_ }
 

Detailed Description

template<class Container>
class cc::Iterator< Container >

Value iterator.

Template Parameters
ContainerContainer type

Member Typedef Documentation

◆ Item

template<class Container >
using Item = typename Container::Item

Item type.

◆ Access

template<class Container >
using Access = typename MakeAccessType<Item, std::is_const<Container>::value>::Type

Item access type.

Constructor & Destructor Documentation

◆ Iterator()

template<class Container >
Iterator ( const Locator & pos)

Create a value iterator from the locator pos.

Member Function Documentation

◆ operator*()

template<class Container >
Access & operator* ( ) const

Get access to current item value.

◆ operator+() [1/2]

template<class Container >
long operator+ ( ) const

Return the index value of the iterator (unary plus operator)

◆ operator++() [1/2]

template<class Container >
Iterator & operator++ ( )

Step to the next item (prefix increment operator)

◆ operator--() [1/2]

template<class Container >
Iterator & operator-- ( )

Step to the previous item (prefix decrement operator)

◆ operator++() [2/2]

template<class Container >
Iterator operator++ ( int )

Step to the next item and return the old iterator value (postfix increment operator)

◆ operator--() [2/2]

template<class Container >
Iterator operator-- ( int )

Step to the previous item and return the old iterator value (postfix decrement operator)

◆ operator+() [2/2]

template<class Container >
Iterator operator+ ( long delta)

Get iterator value stepped delta items forward (addition operator)

◆ operator-() [1/2]

template<class Container >
Iterator operator- ( long delta)

Get iterator value stepped delta items backward (substraction operator)

◆ operator-() [2/2]

template<class Container >
long operator- ( const Iterator< Container > & b) const

Get distance between this and another iterator (substraction operator)

◆ operator==()

template<class Container >
bool operator== ( const Iterator< Container > & b) const

Equality operator.

◆ operator<=>()

template<class Container >
std::strong_ordering operator<=> ( const Iterator< Container > & b) const

Ordering operator.

◆ operator bool()

template<class Container >
operator bool ( ) const
explicit

Check if this iterator is valid (explicitly cast to bool)