Rendering Engine 0.2.0
Modular Graphics Rendering Engine | v0.2.0
Loading...
Searching...
No Matches
rendering_engine::Enum< T >::Iterator Class Referencefinal

#include <utility.hpp>

Public Types

using size_type = std::size_t
using difference_type = std::ptrdiff_t
using value_type = T
using reference = T
using pointer = T*
using iterator_category = std::forward_iterator_tag

Public Member Functions

 Iterator ()=default
 Iterator (T value)
 Iterator (const Iterator &)=default
 Iterator (Iterator &&)=default
Iteratoroperator= (const Iterator &)=default
Iteratoroperator= (Iterator &&)=default
 ~Iterator ()=default
operator* () const
Iteratoroperator++ ()
Iterator operator++ (int)
bool operator== (const Iterator &rhs) const
bool operator!= (const Iterator &rhs) const

Detailed Description

template<typename T>
class rendering_engine::Enum< T >::Iterator

Definition at line 174 of file utility.hpp.

Member Typedef Documentation

◆ difference_type

template<typename T>
using rendering_engine::Enum< T >::Iterator::difference_type = std::ptrdiff_t

Definition at line 178 of file utility.hpp.

◆ iterator_category

template<typename T>
using rendering_engine::Enum< T >::Iterator::iterator_category = std::forward_iterator_tag

Definition at line 182 of file utility.hpp.

◆ pointer

template<typename T>
using rendering_engine::Enum< T >::Iterator::pointer = T*

Definition at line 181 of file utility.hpp.

◆ reference

template<typename T>
using rendering_engine::Enum< T >::Iterator::reference = T

Definition at line 180 of file utility.hpp.

◆ size_type

template<typename T>
using rendering_engine::Enum< T >::Iterator::size_type = std::size_t

Definition at line 177 of file utility.hpp.

◆ value_type

template<typename T>
using rendering_engine::Enum< T >::Iterator::value_type = T

Definition at line 179 of file utility.hpp.

Constructor & Destructor Documentation

◆ Iterator() [1/4]

template<typename T>
rendering_engine::Enum< T >::Iterator::Iterator ( )
default

◆ Iterator() [2/4]

template<typename T>
rendering_engine::Enum< T >::Iterator::Iterator ( T value)
inlineexplicit

Definition at line 208 of file utility.hpp.

208 :
209 mValue(value)
210{
211}

◆ Iterator() [3/4]

template<typename T>
rendering_engine::Enum< T >::Iterator::Iterator ( const Iterator & )
default

◆ Iterator() [4/4]

template<typename T>
rendering_engine::Enum< T >::Iterator::Iterator ( Iterator && )
default

◆ ~Iterator()

template<typename T>
rendering_engine::Enum< T >::Iterator::~Iterator ( )
default

Member Function Documentation

◆ operator!=()

template<typename T>
bool rendering_engine::Enum< T >::Iterator::operator!= ( const Iterator & rhs) const
inline

Definition at line 220 of file utility.hpp.

221{
222 return mValue != rhs.mValue;
223}

◆ operator*()

template<typename T>
T rendering_engine::Enum< T >::Iterator::operator* ( ) const
inline

Definition at line 226 of file utility.hpp.

227{
228 if( mValue > T::End )
229 {
230 throw std::runtime_error("Cannot dereference end().");
231 }
232
233 return mValue;
234}

◆ operator++() [1/2]

template<typename T>
Enum< T >::Iterator & rendering_engine::Enum< T >::Iterator::operator++ ( )
inline

Definition at line 237 of file utility.hpp.

238{
239 if( mValue <= T::End )
240 {
241 mValue = T(static_cast<int>(mValue) + 1);
242 }
243 return *this;
244}

◆ operator++() [2/2]

template<typename T>
Enum< T >::Iterator rendering_engine::Enum< T >::Iterator::operator++ ( int )
inline

Definition at line 247 of file utility.hpp.

248{
249 Iterator temp = *this;
250 operator++();
251 return temp;
252}

◆ operator=() [1/2]

template<typename T>
Iterator & rendering_engine::Enum< T >::Iterator::operator= ( const Iterator & )
default

◆ operator=() [2/2]

template<typename T>
Iterator & rendering_engine::Enum< T >::Iterator::operator= ( Iterator && )
default

◆ operator==()

template<typename T>
bool rendering_engine::Enum< T >::Iterator::operator== ( const Iterator & rhs) const
inline

Definition at line 214 of file utility.hpp.

215{
216 return mValue == rhs.mValue;
217}

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