neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::iterator< T, Category, Difference, Pointer, Reference > Class Template Reference

#include <i_iterator.hpp>

Inheritance diagram for neolib::iterator< T, Category, Difference, Pointer, Reference >:
neolib::random_access_iterator< T, Category, Difference, Pointer, Reference >

Public Types

typedef i_iterator< T, Category, Difference, Pointer, Reference > abstract_type
 
typedef T value_type
 
typedef Difference difference_type
 
typedef Pointer pointer
 
typedef Reference reference
 
typedef Category iterator_category
 
typedef abstract_type abstract_iterator
 
typedef i_const_iterator< T, Category, Difference, const T *, const T & > abstract_const_iterator
 

Public Member Functions

 iterator ()
 
 iterator (abstract_iterator *aWrappedIterator)
 
 iterator (const self_type &aOther)
 
 ~iterator ()
 
self_typeoperator= (const self_type &aOther)
 
 operator abstract_iterator & ()
 
abstract_iteratoroperator++ ()
 
abstract_iteratoroperator-- ()
 
self_type operator++ (int)
 
self_type operator-- (int)
 
reference operator* () const
 
pointer operator-> () const
 
bool operator== (const self_type &aOther) const
 
bool operator!= (const self_type &aOther) const
 
bool is_singular () const
 
abstract_iteratorwrapped_iterator () const
 
abstract_iteratorclone (void *memory) const
 
abstract_const_iteratorconst_clone (void *memory) const
 
voidstorage () const
 

Protected Attributes

bool iSingular = true
 
std::aligned_storage< sizeof(void *) *10 >::type iStorage
 

Detailed Description

template<typename T, typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
class neolib::iterator< T, Category, Difference, Pointer, Reference >

Definition at line 397 of file i_iterator.hpp.

Member Typedef Documentation

◆ abstract_const_iterator

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
typedef i_const_iterator<T, Category, Difference, const T*, const T&> neolib::iterator< T, Category, Difference, Pointer, Reference >::abstract_const_iterator

Definition at line 409 of file i_iterator.hpp.

◆ abstract_iterator

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
typedef abstract_type neolib::iterator< T, Category, Difference, Pointer, Reference >::abstract_iterator

Definition at line 408 of file i_iterator.hpp.

◆ abstract_type

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
typedef i_iterator<T, Category, Difference, Pointer, Reference> neolib::iterator< T, Category, Difference, Pointer, Reference >::abstract_type

Definition at line 401 of file i_iterator.hpp.

◆ difference_type

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
typedef Difference neolib::iterator< T, Category, Difference, Pointer, Reference >::difference_type

Definition at line 403 of file i_iterator.hpp.

◆ iterator_category

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
typedef Category neolib::iterator< T, Category, Difference, Pointer, Reference >::iterator_category

Definition at line 406 of file i_iterator.hpp.

◆ pointer

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
typedef Pointer neolib::iterator< T, Category, Difference, Pointer, Reference >::pointer

Definition at line 404 of file i_iterator.hpp.

◆ reference

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
typedef Reference neolib::iterator< T, Category, Difference, Pointer, Reference >::reference

Definition at line 405 of file i_iterator.hpp.

◆ value_type

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
typedef T neolib::iterator< T, Category, Difference, Pointer, Reference >::value_type

Definition at line 402 of file i_iterator.hpp.

Constructor & Destructor Documentation

◆ iterator() [1/3]

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
neolib::iterator< T, Category, Difference, Pointer, Reference >::iterator ( )
inline

Definition at line 411 of file i_iterator.hpp.

◆ iterator() [2/3]

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
neolib::iterator< T, Category, Difference, Pointer, Reference >::iterator ( abstract_iterator< T, Category, Difference, Pointer, Reference > *  aWrappedIterator)
inline

Definition at line 414 of file i_iterator.hpp.

◆ iterator() [3/3]

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
neolib::iterator< T, Category, Difference, Pointer, Reference >::iterator ( const self_type aOther)
inline

Definition at line 419 of file i_iterator.hpp.

◆ ~iterator()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
neolib::iterator< T, Category, Difference, Pointer, Reference >::~iterator ( )
inline

Definition at line 424 of file i_iterator.hpp.

Member Function Documentation

◆ clone()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
abstract_iterator * neolib::iterator< T, Category, Difference, Pointer, Reference >::clone ( void memory) const
inline

Definition at line 462 of file i_iterator.hpp.

◆ const_clone()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
abstract_const_iterator * neolib::iterator< T, Category, Difference, Pointer, Reference >::const_clone ( void memory) const
inline

Definition at line 468 of file i_iterator.hpp.

◆ is_singular()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
bool neolib::iterator< T, Category, Difference, Pointer, Reference >::is_singular ( ) const
inline

Definition at line 452 of file i_iterator.hpp.

◆ operator abstract_iterator &()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
neolib::iterator< T, Category, Difference, Pointer, Reference >::operator abstract_iterator & ( )
inline

Definition at line 438 of file i_iterator.hpp.

◆ operator!=()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
bool neolib::iterator< T, Category, Difference, Pointer, Reference >::operator!= ( const self_type aOther) const
inline

Definition at line 450 of file i_iterator.hpp.

◆ operator*()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
reference neolib::iterator< T, Category, Difference, Pointer, Reference >::operator* ( ) const
inline

Definition at line 447 of file i_iterator.hpp.

◆ operator++() [1/2]

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
abstract_iterator & neolib::iterator< T, Category, Difference, Pointer, Reference >::operator++ ( )
inline

Definition at line 443 of file i_iterator.hpp.

◆ operator++() [2/2]

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
self_type neolib::iterator< T, Category, Difference, Pointer, Reference >::operator++ ( int  )
inline

Definition at line 445 of file i_iterator.hpp.

◆ operator--() [1/2]

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
abstract_iterator & neolib::iterator< T, Category, Difference, Pointer, Reference >::operator-- ( )
inline

Definition at line 444 of file i_iterator.hpp.

◆ operator--() [2/2]

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
self_type neolib::iterator< T, Category, Difference, Pointer, Reference >::operator-- ( int  )
inline

Definition at line 446 of file i_iterator.hpp.

◆ operator->()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
pointer neolib::iterator< T, Category, Difference, Pointer, Reference >::operator-> ( ) const
inline

Definition at line 448 of file i_iterator.hpp.

◆ operator=()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
self_type & neolib::iterator< T, Category, Difference, Pointer, Reference >::operator= ( const self_type aOther)
inline

Definition at line 429 of file i_iterator.hpp.

◆ operator==()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
bool neolib::iterator< T, Category, Difference, Pointer, Reference >::operator== ( const self_type aOther) const
inline

Definition at line 449 of file i_iterator.hpp.

◆ storage()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
void * neolib::iterator< T, Category, Difference, Pointer, Reference >::storage ( ) const
inline

Definition at line 474 of file i_iterator.hpp.

◆ wrapped_iterator()

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
abstract_iterator & neolib::iterator< T, Category, Difference, Pointer, Reference >::wrapped_iterator ( ) const
inline

Definition at line 456 of file i_iterator.hpp.

Member Data Documentation

◆ iSingular

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
bool neolib::iterator< T, Category, Difference, Pointer, Reference >::iSingular = true
mutableprotected

Definition at line 480 of file i_iterator.hpp.

◆ iStorage

template<typename T , typename Category = std::bidirectional_iterator_tag, typename Difference = std::ptrdiff_t, typename Pointer = T*, typename Reference = T&>
std::aligned_storage<sizeof(void*)*10>::type neolib::iterator< T, Category, Difference, Pointer, Reference >::iStorage
mutableprotected

Definition at line 481 of file i_iterator.hpp.


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