ALib C++ Library
Library Version: 2511 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 168 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 172 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 170 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 173 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 174 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 181 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 171 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 178 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 187 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 221 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 226 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 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++ ( )
inline

Prefix increment operator.

Returns
A reference to ourselves.

Definition at line 193 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 204 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 257 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 288 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 298 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 233 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 244 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 268 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 322 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 328 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 215 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 335 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 341 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 309 of file iterable.inl.


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