HybridMap< K, V, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD >::IteratorTemplate< CONSTITERATOR, SUPER > Class Template Reference

#include <hybridmap.h>

Inheritance diagram for HybridMap< K, V, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD >::IteratorTemplate< CONSTITERATOR, SUPER >:

Detailed Description

template<typename K, typename V, typename SMALL, typename LARGE, Int THRESHOLD, Int REVERSE_THRESHOLD>
template<Bool CONSTITERATOR, template< Bool > class SUPER>
class maxon::HybridMap< K, V, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD >::IteratorTemplate< CONSTITERATOR, SUPER >

Iterator implementation for HybridMap. Besides the usual iterator operations, ArrayMap iterators support the foreach protocol and (depending on the underlying implementations) Erase and ChangeKey functions.

Public Types

using Super = ForEachIterator< IteratorTemplate< CONSTITERATOR, SUPER >, SUPER< CONSTITERATOR > >
 
- Public Types inherited from ForEachIterator< IteratorTemplate< CONSTITERATOR, SUPER >, SUPER< CONSTITERATOR > >
using IsForEachIterator = std::true_type
 

Public Member Functions

 IteratorTemplate ()
 
MAXON_IMPLICIT IteratorTemplate (const typename Super::SmallIterator &src)
 
MAXON_IMPLICIT IteratorTemplate (const typename Super::LargeIterator &src)
 
 IteratorTemplate (const IteratorTemplate &src)
 
 IteratorTemplate (typename Super::CollectionType &m, Int s=0)
 
 IteratorTemplate (const typename Super::SmallIterator &src, const SmallType &m)
 
 IteratorTemplate (const typename Super::LargeIterator &src, const LargeType &m)
 
template<typename ENTRY >
 IteratorTemplate (ENTRY *src, typename ConstIf< SmallType, CONSTITERATOR >::type &m)
 
template<typename ENTRY >
 IteratorTemplate (ENTRY *src, typename ConstIf< LargeType, CONSTITERATOR >::type &m)
 
 MAXON_OPERATOR_COPY_ASSIGNMENT (IteratorTemplate)
 
template<Bool C, template< Bool > class S, typename = typename std::enable_if<!CONSTITERATOR || C>::type>
 operator IteratorTemplate< C, S > & ()
 
IteratorTemplateoperator++ ()
 
IteratorTemplateoperator-- ()
 
- Public Member Functions inherited from ForEachIterator< IteratorTemplate< CONSTITERATOR, SUPER >, SUPER< CONSTITERATOR > >
MAXON_ATTRIBUTE_FORCE_INLINE ForEachIterator (ARGS &&... args)
 
String ToString (const FormatStatement *formatStatement=nullptr)
 
IteratorTemplate< CONSTITERATOR, SUPER > & Find (const T &v)
 
Int FindIndex (const T &v)
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool Contains (const T &v)
 
MAXON_ATTRIBUTE_FORCE_INLINE Wrapper begin ()
 

Additional Inherited Members

- Static Public Member Functions inherited from ForEachIterator< IteratorTemplate< CONSTITERATOR, SUPER >, SUPER< CONSTITERATOR > >
static MAXON_ATTRIBUTE_FORCE_INLINE PRIVATE_MAXON_RBF_SENTINEL (Wrapper) end()
 

Member Typedef Documentation

◆ Super

using Super = ForEachIterator<IteratorTemplate<CONSTITERATOR, SUPER>, SUPER<CONSTITERATOR> >

Constructor & Destructor Documentation

◆ IteratorTemplate() [1/9]

◆ IteratorTemplate() [2/9]

MAXON_IMPLICIT IteratorTemplate ( const typename Super::SmallIterator &  src)

◆ IteratorTemplate() [3/9]

MAXON_IMPLICIT IteratorTemplate ( const typename Super::LargeIterator &  src)

◆ IteratorTemplate() [4/9]

IteratorTemplate ( const IteratorTemplate< CONSTITERATOR, SUPER > &  src)

◆ IteratorTemplate() [5/9]

IteratorTemplate ( typename Super::CollectionType &  m,
Int  s = 0 
)
explicit

◆ IteratorTemplate() [6/9]

IteratorTemplate ( const typename Super::SmallIterator &  src,
const SmallType m 
)

◆ IteratorTemplate() [7/9]

IteratorTemplate ( const typename Super::LargeIterator &  src,
const LargeType m 
)

◆ IteratorTemplate() [8/9]

IteratorTemplate ( ENTRY *  src,
typename ConstIf< SmallType, CONSTITERATOR >::type m 
)
explicit

◆ IteratorTemplate() [9/9]

IteratorTemplate ( ENTRY *  src,
typename ConstIf< LargeType, CONSTITERATOR >::type m 
)
explicit

Member Function Documentation

◆ MAXON_OPERATOR_COPY_ASSIGNMENT()

MAXON_OPERATOR_COPY_ASSIGNMENT ( IteratorTemplate< CONSTITERATOR, SUPER >  )

◆ operator IteratorTemplate< C, S > &()

operator IteratorTemplate< C, S > & ( )

◆ operator++()

IteratorTemplate& operator++ ( )

◆ operator--()

IteratorTemplate& operator-- ( )