|
CeresEngine 0.2.0
A game development framework
|
Base class for simple iterators. More...
#include <CeresEngine/Foundation/Iterator.hpp>
Public Types | |
| 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 Member Functions | |
| IteratorPrototype ()=delete | |
| IteratorPrototype (T &&first, D &&_dereferencer=D(), C &&_compare=C()) | |
| DereferencedType | operator* () |
| auto * | operator-> () const |
Public Attributes | |
| T | value |
Protected Attributes | |
| D | dereferencer |
| C | compare |
Friends | |
| bool | operator== (const IteratorPrototype &lhs, const IteratorPrototype &rhs) |
| bool | operator!= (const IteratorPrototype &lhs, const IteratorPrototype &rhs) |
Base class for simple iterators.
Takes several template parameters. Implementations must define operator++() to update the value of value.
| T | The data type held by the iterator |
| D | A functional that dereferences the data. Determines the value type of the iterator. |
| C | A function that compares two values of type T. Used to determine if two iterators are equal. |
| using CeresEngine::IteratorPrototype< T, D, C >::DereferencedType = decltype(dereferencer(value)) |
| using CeresEngine::IteratorPrototype< T, D, C >::difference_type = std::ptrdiff_t |
| using CeresEngine::IteratorPrototype< T, D, C >::iterator_category = std::input_iterator_tag |
| using CeresEngine::IteratorPrototype< T, D, C >::pointer = value_type* |
| using CeresEngine::IteratorPrototype< T, D, C >::reference = decltype(std::declval<D>()(std::declval<T&>())) |
| using CeresEngine::IteratorPrototype< T, D, C >::value_type = typename std::decay<reference>::type |
|
delete |
|
inlineexplicit |
|
inline |
|
inline |
|
friend |
|
friend |
|
protected |
|
protected |
|
mutable |