Vector< Element >::Iterator< is_const > Class Template Reference

#include <WVector.h>

Public Types

using iterator_category = std::random_access_iterator_tag
 
using value_type = Element
 
using difference_type = std::ptrdiff_t
 
using pointer = Element *
 
using reference = Element &
 
using V = typename std::conditional< is_const, const Vector, Vector >::type
 
using E = typename std::conditional< is_const, const Element, Element >::type
 

Public Member Functions

 Iterator (const Iterator &)=default
 
 Iterator (V &vector, unsigned index)
 
Iteratoroperator++ ()
 
Iterator operator++ (int)
 
Iterator operator+= (size_t distance)
 
bool operator== (const Iterator &rhs) const
 
bool operator!= (const Iterator &rhs) const
 
template<typename U = Element>
std::enable_if<!is_const, U & >::type operator* ()
 
Eoperator* () const
 

Member Typedef Documentation

◆ difference_type

template<typename Element >
template<bool is_const>
using Vector< Element >::Iterator< is_const >::difference_type = std::ptrdiff_t

◆ E

template<typename Element >
template<bool is_const>
using Vector< Element >::Iterator< is_const >::E = typename std::conditional<is_const, const Element, Element>::type

◆ iterator_category

template<typename Element >
template<bool is_const>
using Vector< Element >::Iterator< is_const >::iterator_category = std::random_access_iterator_tag

◆ pointer

template<typename Element >
template<bool is_const>
using Vector< Element >::Iterator< is_const >::pointer = Element*

◆ reference

template<typename Element >
template<bool is_const>
using Vector< Element >::Iterator< is_const >::reference = Element&

◆ V

template<typename Element >
template<bool is_const>
using Vector< Element >::Iterator< is_const >::V = typename std::conditional<is_const, const Vector, Vector>::type

◆ value_type

template<typename Element >
template<bool is_const>
using Vector< Element >::Iterator< is_const >::value_type = Element

Constructor & Destructor Documentation

◆ Iterator() [1/2]

template<typename Element >
template<bool is_const>
Vector< Element >::Iterator< is_const >::Iterator ( const Iterator< is_const > &  )
default

◆ Iterator() [2/2]

template<typename Element >
template<bool is_const>
Vector< Element >::Iterator< is_const >::Iterator ( V vector,
unsigned  index 
)
inline

Member Function Documentation

◆ operator!=()

template<typename Element >
template<bool is_const>
bool Vector< Element >::Iterator< is_const >::operator!= ( const Iterator< is_const > &  rhs) const
inline

◆ operator*() [1/2]

template<typename Element >
template<bool is_const>
template<typename U = Element>
std::enable_if<!is_const, U&>::type Vector< Element >::Iterator< is_const >::operator* ( )
inline

◆ operator*() [2/2]

template<typename Element >
template<bool is_const>
E& Vector< Element >::Iterator< is_const >::operator* ( ) const
inline

◆ operator++() [1/2]

template<typename Element >
template<bool is_const>
Iterator& Vector< Element >::Iterator< is_const >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename Element >
template<bool is_const>
Iterator Vector< Element >::Iterator< is_const >::operator++ ( int  )
inline

◆ operator+=()

template<typename Element >
template<bool is_const>
Iterator Vector< Element >::Iterator< is_const >::operator+= ( size_t  distance)
inline

◆ operator==()

template<typename Element >
template<bool is_const>
bool Vector< Element >::Iterator< is_const >::operator== ( const Iterator< is_const > &  rhs) const
inline

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