Rendering Engine 0.2.9
Modular Graphics Rendering Engine | v0.2.9
rendering_engine::Enum< T >::Iterator Class Referencefinal

#include <model_material.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 102 of file model_material.hpp.

Member Typedef Documentation

◆ difference_type

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

Definition at line 106 of file model_material.hpp.

◆ iterator_category

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

Definition at line 110 of file model_material.hpp.

◆ pointer

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

Definition at line 109 of file model_material.hpp.

◆ reference

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

Definition at line 108 of file model_material.hpp.

◆ size_type

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

Definition at line 105 of file model_material.hpp.

◆ value_type

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

Definition at line 107 of file model_material.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 ( value)
inlineexplicit

Definition at line 136 of file model_material.hpp.

136 :
137 mValue(value)
138{
139}

◆ 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 148 of file model_material.hpp.

149{
150 return mValue != rhs.mValue;
151}

◆ operator*()

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

Definition at line 154 of file model_material.hpp.

155{
156 if (mValue > T::End)
157 {
158 throw std::runtime_error("Cannot dereference end().");
159 }
160
161 return mValue;
162}

◆ operator++() [1/2]

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

Definition at line 165 of file model_material.hpp.

166{
167 if (mValue <= T::End)
168 {
169 mValue = T(static_cast<int>(mValue) + 1);
170 }
171 return *this;
172}

◆ operator++() [2/2]

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

Definition at line 175 of file model_material.hpp.

176{
177 Iterator temp = *this;
178 operator++();
179 return temp;
180}

◆ 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 142 of file model_material.hpp.

143{
144 return mValue == rhs.mValue;
145}

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