ALib C++ Library
Library Version: 2510 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference > Class Template Reference

Description:

template<typename TEnum>
template<typename TPointer, typename TReference>
class alib::enumops::EnumIterator< TEnum >::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 173 of file iterable.inl.

Public Method Index:

constexpr TRandomAccessIterator (TEnum pp=TEnum(0))
 
constexpr bool operator!= (TRandomAccessIterator other) const
 
constexpr TEnum operator* () const
 
TRandomAccessIterator operator+ (TIntegral n) const
 
TRandomAccessIteratoroperator++ ()
 
TRandomAccessIterator operator++ (typename std::underlying_type< TEnum >::type)
 
TRandomAccessIteratoroperator+= (TIntegral n)
 
TRandomAccessIterator operator- (TIntegral n) const
 
std::ptrdiff_t operator- (TRandomAccessIterator other) const
 
TRandomAccessIteratoroperator-- ()
 
TRandomAccessIterator operator-- (typename std::underlying_type< TEnum >::type)
 
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 Type Index:

using TIntegral = typename std::underlying_type<TEnum>::type
 The underlying integer type.
 

Protected Field Index:

TEnum p
 The actual enum element.
 

Private Type Index:

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.
 

Type Definition Details:

◆ difference_type

template<typename TEnum>
template<typename TPointer, typename TReference>
using alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::difference_type = std::ptrdiff_t
private

Implementation of std::iterator_traits.

Definition at line 177 of file iterable.inl.

◆ iterator_category

template<typename TEnum>
template<typename TPointer, typename TReference>
using alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::iterator_category = std::random_access_iterator_tag
private

Implementation of std::iterator_traits.

Definition at line 175 of file iterable.inl.

◆ pointer

template<typename TEnum>
template<typename TPointer, typename TReference>
using alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::pointer = TPointer
private

Implementation of std::iterator_traits.

Definition at line 178 of file iterable.inl.

◆ reference

template<typename TEnum>
template<typename TPointer, typename TReference>
using alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::reference = TReference
private

Implementation of std::iterator_traits.

Definition at line 179 of file iterable.inl.

◆ TIntegral

template<typename TEnum>
template<typename TPointer, typename TReference>
using alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::TIntegral = typename std::underlying_type<TEnum>::type
protected

The underlying integer type.

Definition at line 186 of file iterable.inl.

◆ value_type

template<typename TEnum>
template<typename TPointer, typename TReference>
using alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::value_type = TEnum
private

Implementation of std::iterator_traits.

Definition at line 176 of file iterable.inl.

Field Details:

◆ p

template<typename TEnum>
template<typename TPointer, typename TReference>
TEnum alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::p
protected

The actual enum element.

Definition at line 183 of file iterable.inl.

Constructor(s) / Destructor Details:

◆ TRandomAccessIterator()

template<typename TEnum>
template<typename TPointer, typename TReference>
alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::TRandomAccessIterator ( TEnum pp = TEnum(0))
inlineexplicitconstexpr

Constructor.

Parameters
ppOur initial value

Definition at line 193 of file iterable.inl.

Method Details:

◆ operator!=()

template<typename TEnum>
template<typename TPointer, typename TReference>
bool alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::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 234 of file iterable.inl.

◆ operator*()

template<typename TEnum>
template<typename TPointer, typename TReference>
TEnum alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator* ( ) const
inlineconstexpr

Retrieves the enum element that this iterator references.

Returns
The enum element.

Definition at line 242 of file iterable.inl.

◆ operator+()

template<typename TEnum>
template<typename TPointer, typename TReference>
TRandomAccessIterator alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator+ ( TIntegral n) const
inline

Addition.

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

Definition at line 301 of file iterable.inl.

◆ operator++() [1/2]

template<typename TEnum>
template<typename TPointer, typename TReference>
TRandomAccessIterator & alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator++ ( )
inline

Prefix increment operator.

Returns
A reference to ourselves.

Definition at line 201 of file iterable.inl.

◆ operator++() [2/2]

template<typename TEnum>
template<typename TPointer, typename TReference>
TRandomAccessIterator alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator++ ( typename std::underlying_type< TEnum >::type )
inline

Postfix increment operator.

Returns
A reference to ourselves.

Definition at line 213 of file iterable.inl.

◆ operator+=()

template<typename TEnum>
template<typename TPointer, typename TReference>
TRandomAccessIterator & alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator+= ( TIntegral n)
inline

Addition assignment.

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

Definition at line 278 of file iterable.inl.

◆ operator-() [1/2]

template<typename TEnum>
template<typename TPointer, typename TReference>
TRandomAccessIterator alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator- ( TIntegral n) const
inline

Subtraction.

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

Definition at line 312 of file iterable.inl.

◆ operator-() [2/2]

template<typename TEnum>
template<typename TPointer, typename TReference>
std::ptrdiff_t alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::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 323 of file iterable.inl.

◆ operator--() [1/2]

template<typename TEnum>
template<typename TPointer, typename TReference>
TRandomAccessIterator & alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator-- ( )
inline

Prefix decrement operator.

Returns
A reference to ourselves.

Definition at line 252 of file iterable.inl.

◆ operator--() [2/2]

template<typename TEnum>
template<typename TPointer, typename TReference>
TRandomAccessIterator alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator-- ( typename std::underlying_type< TEnum >::type )
inline

Postfix decrement operator.

Returns
An iterator that with the old value.

Definition at line 264 of file iterable.inl.

◆ operator-=()

template<typename TEnum>
template<typename TPointer, typename TReference>
TRandomAccessIterator & alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator-= ( TIntegral n)
inline

Subtraction assignment.

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

Definition at line 290 of file iterable.inl.

◆ operator<()

template<typename TEnum>
template<typename TPointer, typename TReference>
bool alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::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 349 of file iterable.inl.

◆ operator<=()

template<typename TEnum>
template<typename TPointer, typename TReference>
bool alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::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 358 of file iterable.inl.

◆ operator==()

template<typename TEnum>
template<typename TPointer, typename TReference>
bool alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::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 225 of file iterable.inl.

◆ operator>()

template<typename TEnum>
template<typename TPointer, typename TReference>
bool alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::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 368 of file iterable.inl.

◆ operator>=()

template<typename TEnum>
template<typename TPointer, typename TReference>
bool alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::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 377 of file iterable.inl.

◆ operator[]()

template<typename TEnum>
template<typename TPointer, typename TReference>
TEnum alib::enumops::EnumIterator< TEnum >::TRandomAccessIterator< TPointer, TReference >::operator[] ( std::ptrdiff_t n) const
inline

Subscript operator.

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

Definition at line 335 of file iterable.inl.


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