xentara-utils v2.0.3
The Xentara Utility Library
Loading...
Searching...
No Matches
xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator Class Referencefinal

#include <xentara/utils/lockFree/LockFreeTraversableMap.hpp>

Public Types

using value_type = Traverser::value_type
 The value type.
 
using difference_type = Traverser::difference_type
 The type used for distances.
 
using reference = const value_type &
 A reference to an element.
 
using pointer = Traverser::const_pointer
 A pointer to an element.
 
using iterator_concept = std::forward_iterator_tag
 The iterator concept.
 
using iterator_category = iterator_concept
 The iterator category, for use in pre-C++20 code.
 

Public Member Functions

constexpr Iterator () noexcept=default
 Default constructor.
 
constexpr Iterator (std::default_sentinel_t) noexcept
 Conversion constructor for a sentinel.
 
auto operator== (const Iterator &rhs) const noexcept -> bool
 Equality operator.
 
auto operator++ () -> Iterator &
 Pre-increment operator.
 
auto operator++ (int) -> Iterator
 Post-increment operator.
 
auto operator* () noexcept -> reference
 Indirection operator.
 
auto operator-> () noexcept -> pointer
 Indirection operator.
 

Member Typedef Documentation

◆ difference_type

template<typename Element >
using xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::difference_type = Traverser::difference_type

The type used for distances.

◆ iterator_category

template<typename Element >
using xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::iterator_category = iterator_concept

The iterator category, for use in pre-C++20 code.

◆ iterator_concept

template<typename Element >
using xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::iterator_concept = std::forward_iterator_tag

The iterator concept.

◆ pointer

template<typename Element >
using xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::pointer = Traverser::const_pointer

A pointer to an element.

◆ reference

template<typename Element >
using xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::reference = const value_type &

A reference to an element.

◆ value_type

template<typename Element >
using xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::value_type = Traverser::value_type

The value type.

Constructor & Destructor Documentation

◆ Iterator() [1/2]

template<typename Element >
constexpr xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::Iterator ( )
constexprdefaultnoexcept

Default constructor.

This constructor creates an invalid iterator. It is suitable as a sentinel for algorithms that require the sentinel to be of the same type as the iterator.

◆ Iterator() [2/2]

template<typename Element >
constexpr xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::Iterator ( std::default_sentinel_t  )
constexprnoexcept

Conversion constructor for a sentinel.

This constructor creates an invalid iterator suitable for use as a sentinel for algorithms that require the sentinel to be of the same type as the iterator.

Member Function Documentation

◆ operator*()

template<typename Element >
auto xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::operator* ( ) -> reference
noexcept

Indirection operator.

Precondition
Must not be called on an exhaused iterator
Returns
A dummy value object.

◆ operator++() [1/2]

template<typename Element >
auto xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::operator++ ( ) -> Iterator &

Pre-increment operator.

Moves the iterator forward by one position.

Precondition
Must not be called on an invalid or exhausted iterator.

◆ operator++() [2/2]

template<typename Element >
auto xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::operator++ ( int  ) -> Iterator

Post-increment operator.

Moves the iterator forward by one position.

Precondition
Must not be called on an invalid or exhausted iterator.

◆ operator->()

template<typename Element >
auto xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::operator-> ( ) -> pointer
noexcept

Indirection operator.

Precondition
Must not be called on an exhaused iterator
Returns
A dummy value object.

◆ operator==()

template<typename Element >
auto xentara::utils::lockFree::LockFreeTraversableMap< Element >::Traverser::Iterator::operator== ( const Iterator rhs) const -> bool
noexcept

Equality operator.

This operator is intended to be used to check for the end of an map in algorithms that do not support std::default_sentinel_t, but use an invalid iterator as sentinel instead.