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

#include <hybridmap.h>

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

Public Types

using Super = typename std::conditional< CONSTITERATOR, IteratorBase< true >, NonConstIteratorBase >::type
 
using CollectionType = typename ConstIf< HybridMap, CONSTITERATOR >::type
 
using KeyType = K
 
using MappedType = typename ConstIf< V, CONSTITERATOR >::type
 
using Small = decltype(*std::declval< typename Super::SmallIterator >())
 
using Large = decltype(*std::declval< typename Super::LargeIterator >())
 
using ValueType = typename std::conditional< SAME_TYPE, typename CommonLValue< Small, Small, Large >::type, Pair< K, V > >::type
 

Public Member Functions

 EntryIteratorBase ()
 
 EntryIteratorBase (const typename Super::SmallIterator &src)
 
 EntryIteratorBase (const typename Super::LargeIterator &src)
 
 EntryIteratorBase (const EntryIteratorBase &src)
 
 EntryIteratorBase (CollectionType &m, Int s=0)
 
ValueType operator* () const
 

Static Public Attributes

static const Bool SAME_TYPE
 

Protected Member Functions

void operator-> ()
 

Member Typedef Documentation

◆ Super

using Super = typename std::conditional<CONSTITERATOR, IteratorBase<true>, NonConstIteratorBase>::type

◆ CollectionType

using CollectionType = typename ConstIf<HybridMap, CONSTITERATOR>::type

◆ KeyType

using KeyType = K

◆ MappedType

using MappedType = typename ConstIf<V, CONSTITERATOR>::type

◆ Small

using Small = decltype(*std::declval<typename Super::SmallIterator>())

◆ Large

using Large = decltype(*std::declval<typename Super::LargeIterator>())

◆ ValueType

using ValueType = typename std::conditional<SAME_TYPE, typename CommonLValue<Small, Small, Large>::type, Pair<K, V> >::type

Constructor & Destructor Documentation

◆ EntryIteratorBase() [1/5]

◆ EntryIteratorBase() [2/5]

EntryIteratorBase ( const typename Super::SmallIterator &  src)
explicit

◆ EntryIteratorBase() [3/5]

EntryIteratorBase ( const typename Super::LargeIterator &  src)
explicit

◆ EntryIteratorBase() [4/5]

EntryIteratorBase ( const EntryIteratorBase< CONSTITERATOR > &  src)

◆ EntryIteratorBase() [5/5]

EntryIteratorBase ( CollectionType m,
Int  s = 0 
)
explicit

Member Function Documentation

◆ operator*()

ValueType operator* ( ) const

◆ operator->()

void operator-> ( )
protected

Member Data Documentation

◆ SAME_TYPE

const Bool SAME_TYPE
static