ALib C++ Library
Library Version: 2312 R0
Documentation generated by doxygen
Public Methods | Protected Types | Protected Fields | Private Types | List of all members
EnumIterator< TEnum, TEnableIf >::TRandomAccessIterator< TPointer, TReference > Class Template Reference

#include <iterable.hpp>

Class Description

template<typename TEnum, typename TEnableIf>
template<typename TPointer, typename TReference>
class aworx::lib::enums::EnumIterator< TEnum, TEnableIf >::TRandomAccessIterator< TPointer, TReference >


Implementation of std::iterator_traits for enum type TEnum. This class exposes ConstIterator which uses const TEnum* and const TEnum& as pointer and reference types.

As the name of the class indicates, this iterator satisfies the C++ standard library concept RandomAccessIterator .

Definition at line 241 of file iterable.hpp.

Public Methods

constexpr TRandomAccessIterator (TEnum _p=TEnum(0))
 
constexpr bool operator!= (TRandomAccessIterator other) const
 
constexpr TEnum operator* () const
 
TRandomAccessIterator operator+ (TIntegral n) const
 
TRandomAccessIteratoroperator++ ()
 
TRandomAccessIterator operator++ (int)
 
TRandomAccessIteratoroperator+= (TIntegral n)
 
TRandomAccessIterator operator- (TIntegral n) const
 
std::ptrdiff_t operator- (TRandomAccessIterator other) const
 
TRandomAccessIteratoroperator-- ()
 
TRandomAccessIterator operator-- (int)
 
TRandomAccessIteratoroperator-= (TIntegral n)
 
bool operator< (TRandomAccessIterator other) const
 
bool operator<= (TRandomAccessIterator other) const
 
constexpr bool operator== (TRandomAccessIterator other) const
 
bool operator> (TRandomAccessIterator other) const
 
bool operator>= (TRandomAccessIterator other) const
 
TEnum operator[] (std::ptrdiff_t n) const
 

Protected Types

using TIntegral = typename std::underlying_type< TEnum >::type
 

Protected Fields

TEnum p
 

Private Types

using difference_type = std::ptrdiff_t
 Implementation of std::iterator_traits.
 
using iterator_category = std::random_access_iterator_tag
 Implementation of std::iterator_traits.
 
using pointer = TPointer
 Implementation of std::iterator_traits.
 
using reference = TReference
 Implementation of std::iterator_traits.
 
using value_type = TEnum
 Implementation of std::iterator_traits.
 

Member Typedef Documentation

◆ TIntegral

using TIntegral = typename std::underlying_type<TEnum>::type
protected

The underlying integer type.

Definition at line 254 of file iterable.hpp.

Constructor & Destructor Documentation

◆ TRandomAccessIterator()

constexpr TRandomAccessIterator ( TEnum  _p = TEnum(0))
inlineexplicitconstexpr

Constructor.

Parameters
_pOur initial value

Definition at line 261 of file iterable.hpp.

Member Function Documentation

◆ operator!=()

constexpr bool operator!= ( TRandomAccessIterator< TPointer, TReference >  other) const
inlineconstexpr

Comparison operator.

Parameters
otherThe iterator to compare ourselves to.
Returns
true if this and given iterator are not equal, false otherwise.

Definition at line 302 of file iterable.hpp.

◆ operator*()

constexpr TEnum operator* ( ) const
inlineconstexpr

Retrieves the enum element that this iterator references.

Returns
The enum element.

Definition at line 310 of file iterable.hpp.

◆ operator+()

TRandomAccessIterator operator+ ( TIntegral  n) const
inline

Addition.

Parameters
nThe value to subtract.
Returns
A reference to the new iterator.

Definition at line 369 of file iterable.hpp.

Here is the call graph for this function:

◆ operator++() [1/2]

TRandomAccessIterator& operator++ ( )
inline

Prefix increment operator.

Returns
A reference to ourselves.

Definition at line 269 of file iterable.hpp.

Here is the call graph for this function:

◆ operator++() [2/2]

TRandomAccessIterator operator++ ( int  )
inline

Postfix increment operator.

Returns
A reference to ourselves.

Definition at line 281 of file iterable.hpp.

Here is the call graph for this function:

◆ operator+=()

TRandomAccessIterator& operator+= ( TIntegral  n)
inline

Addition assignment.

Parameters
nThe value to subtract.
Returns
A reference to ourselves.

Definition at line 346 of file iterable.hpp.

Here is the call graph for this function:

◆ operator-() [1/2]

TRandomAccessIterator operator- ( TIntegral  n) const
inline

Subtraction.

Parameters
nThe value to subtract.
Returns
A reference to the new iterator.

Definition at line 380 of file iterable.hpp.

Here is the call graph for this function:

◆ operator-() [2/2]

std::ptrdiff_t operator- ( TRandomAccessIterator< TPointer, TReference >  other) const
inline

Difference (distance) from this iterator to the given one.

Parameters
otherThe iterator to subtract
Returns
The iterator to subtract.

Definition at line 391 of file iterable.hpp.

Here is the call graph for this function:

◆ operator--() [1/2]

TRandomAccessIterator& operator-- ( )
inline

Prefix decrement operator.

Returns
A reference to ourselves.

Definition at line 320 of file iterable.hpp.

◆ operator--() [2/2]

TRandomAccessIterator operator-- ( int  )
inline

Postfix decrement operator.

Returns
An iterator that with the old value.

Definition at line 332 of file iterable.hpp.

Here is the call graph for this function:

◆ operator-=()

TRandomAccessIterator& operator-= ( TIntegral  n)
inline

Subtraction assignment.

Parameters
nThe value to subtract.
Returns
A reference to ourselves.

Definition at line 358 of file iterable.hpp.

Here is the call graph for this function:

◆ operator<()

bool operator< ( TRandomAccessIterator< TPointer, TReference >  other) const
inline

Compares this iterator with the given one.

Parameters
otherThe iterator to compare
Returns
true if this iterator is smaller than other, false otherwise.

Definition at line 418 of file iterable.hpp.

◆ operator<=()

bool operator<= ( TRandomAccessIterator< TPointer, TReference >  other) const
inline

Compares this iterator with the given one.

Parameters
otherThe iterator to compare
Returns
true if this iterator is smaller than or equal to other, false otherwise.

Definition at line 427 of file iterable.hpp.

◆ operator==()

constexpr bool operator== ( TRandomAccessIterator< TPointer, TReference >  other) const
inlineconstexpr

Comparison operator.

Parameters
otherThe iterator to compare ourselves to.
Returns
true if this and given iterator are equal, false otherwise.

Definition at line 293 of file iterable.hpp.

◆ operator>()

bool operator> ( TRandomAccessIterator< TPointer, TReference >  other) const
inline

Compares this iterator with the given one.

Parameters
otherThe iterator to compare
Returns
true if this iterator is greater than other, false otherwise.

Definition at line 437 of file iterable.hpp.

◆ operator>=()

bool operator>= ( TRandomAccessIterator< TPointer, TReference >  other) const
inline

Compares this iterator with the given one.

Parameters
otherThe iterator to compare
Returns
true if this iterator is greater than or equal to other, false otherwise.

Definition at line 446 of file iterable.hpp.

◆ operator[]()

TEnum operator[] ( std::ptrdiff_t  n) const
inline

Subscript operator.

Parameters
nThe iterator to subtract
Returns
*( (*this) + n ).

Definition at line 404 of file iterable.hpp.

Here is the call graph for this function:

Member Data Documentation

◆ p

TEnum p
protected

The actual enum element.

Definition at line 251 of file iterable.hpp.


The documentation for this class was generated from the following file: