CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::Iterator< T, F, D, C > Class Template Referencefinal

IteratorPrototype where advance is defined by the functional held by F. More...

#include <CeresEngine/Foundation/Iterator.hpp>

Inheritance diagram for CeresEngine::Iterator< T, F, D, C >:
CeresEngine::IteratorPrototype< T, D, C >

Public Member Functions

template<typename TF = F, typename TD = D, typename TC = C>
 Iterator (T &&begin, F &&_callback=F(), D &&_dereferencer=D(), C &&_compare=C())
 
Iteratoroperator++ ()
 
Base::DereferencedType operator* () const
 
 operator bool () const
 
- Public Member Functions inherited from CeresEngine::IteratorPrototype< T, D, C >
 IteratorPrototype ()=delete
 
 IteratorPrototype (T &&first, D &&_dereferencer=D(), C &&_compare=C())
 
DereferencedType operator* ()
 
autooperator-> () const
 

Protected Types

using Base = IteratorPrototype< T, D, C >
 

Protected Attributes

F callback
 
- Protected Attributes inherited from CeresEngine::IteratorPrototype< T, D, C >
D dereferencer
 
C compare
 

Friends

bool operator== (const Iterator &lhs, const IterationEnd &rhs)
 
bool operator!= (const Iterator &lhs, const IterationEnd &rhs)
 

Additional Inherited Members

- Public Types inherited from CeresEngine::IteratorPrototype< T, D, C >
using iterator_category = std::input_iterator_tag
 
using reference = decltype(std::declval< D >()(std::declval< T & >()))
 
using value_type = typename std::decay< reference >::type
 
using pointer = value_type *
 
using difference_type = std::ptrdiff_t
 
using DereferencedType = decltype(dereferencer(value))
 
- Public Attributes inherited from CeresEngine::IteratorPrototype< T, D, C >
T value
 

Detailed Description

template<class T, typename F = impl::increment::ByValue<1>, typename D = impl::dereference::ByValueReference, typename C = impl::compare::ByValue>
class CeresEngine::Iterator< T, F, D, C >

IteratorPrototype where advance is defined by the functional held by F.

Member Typedef Documentation

◆ Base

template<class T , typename F = impl::increment::ByValue<1>, typename D = impl::dereference::ByValueReference, typename C = impl::compare::ByValue>
using CeresEngine::Iterator< T, F, D, C >::Base = IteratorPrototype<T, D, C>
protected

Constructor & Destructor Documentation

◆ Iterator()

template<class T , typename F = impl::increment::ByValue<1>, typename D = impl::dereference::ByValueReference, typename C = impl::compare::ByValue>
template<typename TF = F, typename TD = D, typename TC = C>
CeresEngine::Iterator< T, F, D, C >::Iterator ( T &&  begin,
F &&  _callback = F(),
D &&  _dereferencer = D(),
C &&  _compare = C() 
)
inlineexplicit

Member Function Documentation

◆ operator bool()

template<class T , typename F = impl::increment::ByValue<1>, typename D = impl::dereference::ByValueReference, typename C = impl::compare::ByValue>
CeresEngine::Iterator< T, F, D, C >::operator bool ( ) const
inlineexplicit

◆ operator*()

template<class T , typename F = impl::increment::ByValue<1>, typename D = impl::dereference::ByValueReference, typename C = impl::compare::ByValue>
Base::DereferencedType CeresEngine::Iterator< T, F, D, C >::operator* ( ) const
inline

◆ operator++()

template<class T , typename F = impl::increment::ByValue<1>, typename D = impl::dereference::ByValueReference, typename C = impl::compare::ByValue>
Iterator & CeresEngine::Iterator< T, F, D, C >::operator++ ( )
inline

Friends And Related Symbol Documentation

◆ operator!=

template<class T , typename F = impl::increment::ByValue<1>, typename D = impl::dereference::ByValueReference, typename C = impl::compare::ByValue>
bool operator!= ( const Iterator< T, F, D, C > &  lhs,
const IterationEnd rhs 
)
friend

◆ operator==

template<class T , typename F = impl::increment::ByValue<1>, typename D = impl::dereference::ByValueReference, typename C = impl::compare::ByValue>
bool operator== ( const Iterator< T, F, D, C > &  lhs,
const IterationEnd rhs 
)
friend

Member Data Documentation

◆ callback

template<class T , typename F = impl::increment::ByValue<1>, typename D = impl::dereference::ByValueReference, typename C = impl::compare::ByValue>
F CeresEngine::Iterator< T, F, D, C >::callback
protected

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