Visual Computing Library  devel
Loading...
Searching...
No Matches
vcl::ElementContainerIterator< Container, T, CNST > Class Template Reference

Public Types

using difference_type = ptrdiff_t
 
using iterator_category = std::random_access_iterator_tag
 
using pointer = std::conditional_t< CNST, const T *, T * >
 
using reference = std::conditional_t< CNST, const T &, T & >
 
using value_type = T
 

Public Member Functions

 ElementContainerIterator (ContIt it, const Container< T > &vec, bool jumpDeleted=true)
 
bool operator!= (const ElementContainerIterator &oi) const
 
reference operator* () const
 
ElementContainerIterator operator+ (difference_type n) const
 
ElementContainerIteratoroperator++ ()
 
ElementContainerIterator operator++ (int)
 
ElementContainerIteratoroperator+= (difference_type n)
 
difference_type operator- (const ElementContainerIterator &oi) const
 
ElementContainerIterator operator- (difference_type n) const
 
ElementContainerIteratoroperator-- ()
 
ElementContainerIterator operator-- (int)
 
ElementContainerIteratoroperator-= (difference_type n)
 
pointer operator-> () const
 
bool operator< (const ElementContainerIterator &oi) const
 
bool operator<= (const ElementContainerIterator &oi) const
 
bool operator== (const ElementContainerIterator &oi) const
 
bool operator> (const ElementContainerIterator &oi) const
 
bool operator>= (const ElementContainerIterator &oi) const
 
reference operator[] (difference_type i)
 
const reference operator[] (difference_type i) const
 

Private Types

using ContIt = std::conditional_t< CNST, typename Container< T >::const_iterator, typename Container< T >::iterator >
 

Private Member Functions

ElementContainerIteratorassignSumFast (difference_type n)
 
ElementContainerIteratorassignSumJump (difference_type n)
 
ElementContainerIteratordecrementFast ()
 Decrement function that will be called if we don't need to jump deleted elements.
 
ElementContainerIteratordecrementJump ()
 Decrement function that will be called if we need to jump deleted elements.
 
difference_type diffFast (const ElementContainerIterator &oi) const
 
difference_type diffJump (const ElementContainerIterator &oi) const
 
ElementContainerIteratorincrementFast ()
 Increment function that will be called if we don't need to jump deleted elements.
 
ElementContainerIteratorincrementJump ()
 Increment function that will be called if we need to jump deleted elements.
 
ElementContainerIterator postDecrementFast ()
 Post decrement function that will be called if we don't need to jump deleted elements.
 
ElementContainerIterator postDecrementJump ()
 Post decrement function that will be called if we need to jump deleted elements.
 
ElementContainerIterator postIncrementFast ()
 Post increment function that will be called if we don't need to jump deleted elements.
 
ElementContainerIterator postIncrementJump ()
 Post increment function that will be called if we need to jump deleted elements.
 

Private Attributes

ElementContainerIterator &(ElementContainerIterator::* mAssignSumFun )(difference_type) = &ElementContainerIterator::assignSumJump
 
ElementContainerIterator &(ElementContainerIterator::* mDecrementFun )()
 
difference_type(ElementContainerIterator::* mDiffFun )(const ElementContainerIterator &oi) const
 
ElementContainerIterator &(ElementContainerIterator::* mIncrementFun )()
 
ContIt mIt
 
ElementContainerIterator(ElementContainerIterator::* mPostDecrementFun )()
 
ElementContainerIterator(ElementContainerIterator::* mPostIncrementFun )()
 
const Container< T > * mVec = nullptr
 

Member Data Documentation

◆ mDecrementFun

template<template< typename, typename... > typename Container, typename T , bool CNST = false>
ElementContainerIterator &(ElementContainerIterator::* vcl::ElementContainerIterator< Container, T, CNST >::mDecrementFun) ()
private
Initial value:
=
ElementContainerIterator & decrementJump()
Decrement function that will be called if we need to jump deleted elements.
Definition element_container_iterator.h:238

◆ mDiffFun

template<template< typename, typename... > typename Container, typename T , bool CNST = false>
difference_type(ElementContainerIterator::* vcl::ElementContainerIterator< Container, T, CNST >::mDiffFun) (const ElementContainerIterator &oi) const
private
Initial value:
=
&ElementContainerIterator::diffJump

◆ mIncrementFun

template<template< typename, typename... > typename Container, typename T , bool CNST = false>
ElementContainerIterator &(ElementContainerIterator::* vcl::ElementContainerIterator< Container, T, CNST >::mIncrementFun) ()
private
Initial value:
=
ElementContainerIterator & incrementJump()
Increment function that will be called if we need to jump deleted elements.
Definition element_container_iterator.h:192

◆ mPostDecrementFun

template<template< typename, typename... > typename Container, typename T , bool CNST = false>
ElementContainerIterator(ElementContainerIterator::* vcl::ElementContainerIterator< Container, T, CNST >::mPostDecrementFun) ()
private
Initial value:
=
ElementContainerIterator postDecrementJump()
Post decrement function that will be called if we need to jump deleted elements.
Definition element_container_iterator.h:250

◆ mPostIncrementFun

template<template< typename, typename... > typename Container, typename T , bool CNST = false>
ElementContainerIterator(ElementContainerIterator::* vcl::ElementContainerIterator< Container, T, CNST >::mPostIncrementFun) ()
private
Initial value:
=
ElementContainerIterator postIncrementJump()
Post increment function that will be called if we need to jump deleted elements.
Definition element_container_iterator.h:204

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