MADNESS  version 0.9
Public Types | Public Member Functions | Friends | List of all members
madness::Hash_private::HashIterator< hashT > Class Template Reference

iterator for hash More...

#include <worldhashmap.h>

Public Types

typedef madness::if_
< std::is_const< hashT >
, typename std::add_const
< typename hashT::entryT >
::type, typename hashT::entryT >
::type 
entryT
 
typedef madness::if_
< std::is_const< hashT >
, typename std::add_const
< typename hashT::datumT >
::type, typename hashT::datumT >
::type 
datumT
 
typedef std::forward_iterator_tag iterator_category
 
typedef datumT value_type
 
typedef std::ptrdiff_t difference_type
 
typedef datumTpointer
 
typedef datumTreference
 

Public Member Functions

 HashIterator ()
 Makes invalid iterator. More...
 
 HashIterator (hashT *h, bool begin)
 Makes begin/end iterator. More...
 
 HashIterator (hashT *h, int bin, entryT *entry)
 Makes iterator to specific entry. More...
 
 HashIterator (const HashIterator &other)
 Copy constructor. More...
 
template<class otherHashT >
 HashIterator (const HashIterator< otherHashT > &other)
 Implicit conversion of another hash type to this hash type. More...
 
HashIteratoroperator++ ()
 
HashIterator operator++ (int)
 
int distance (const HashIterator &other) const
 Difference between iterators only supported for this=start and other=end. More...
 
void advance (int n)
 Only positive increments are supported. More...
 
bool operator== (const HashIterator &a) const
 
bool operator!= (const HashIterator &a) const
 
reference operator* () const
 
pointer operator-> () const
 

Friends

template<class otherHashT >
class HashIterator
 

Detailed Description

template<class hashT>
class madness::Hash_private::HashIterator< hashT >

iterator for hash

Member Typedef Documentation

template<class hashT>
typedef madness::if_<std::is_const<hashT>, typename std::add_const<typename hashT::datumT>::type, typename hashT::datumT>::type madness::Hash_private::HashIterator< hashT >::datumT
template<class hashT>
typedef std::ptrdiff_t madness::Hash_private::HashIterator< hashT >::difference_type
template<class hashT>
typedef madness::if_<std::is_const<hashT>, typename std::add_const<typename hashT::entryT>::type, typename hashT::entryT>::type madness::Hash_private::HashIterator< hashT >::entryT
template<class hashT>
typedef std::forward_iterator_tag madness::Hash_private::HashIterator< hashT >::iterator_category
template<class hashT>
typedef datumT* madness::Hash_private::HashIterator< hashT >::pointer
template<class hashT>
typedef datumT& madness::Hash_private::HashIterator< hashT >::reference
template<class hashT>
typedef datumT madness::Hash_private::HashIterator< hashT >::value_type

Constructor & Destructor Documentation

template<class hashT>
madness::Hash_private::HashIterator< hashT >::HashIterator ( )
inline

Makes invalid iterator.

template<class hashT>
madness::Hash_private::HashIterator< hashT >::HashIterator ( hashT h,
bool  begin 
)
inline

Makes begin/end iterator.

template<class hashT>
madness::Hash_private::HashIterator< hashT >::HashIterator ( hashT h,
int  bin,
entryT entry 
)
inline

Makes iterator to specific entry.

template<class hashT>
madness::Hash_private::HashIterator< hashT >::HashIterator ( const HashIterator< hashT > &  other)
inline

Copy constructor.

template<class hashT>
template<class otherHashT >
madness::Hash_private::HashIterator< hashT >::HashIterator ( const HashIterator< otherHashT > &  other)
inline

Implicit conversion of another hash type to this hash type.

This allows implicit conversion from hash types to const hash types.

Member Function Documentation

template<class hashT>
void madness::Hash_private::HashIterator< hashT >::advance ( int  n)
inline

Only positive increments are supported.

This exists to support splitting of range for parallel iteration.

Referenced by std::advance().

template<class hashT>
int madness::Hash_private::HashIterator< hashT >::distance ( const HashIterator< hashT > &  other) const
inline

Difference between iterators only supported for this=start and other=end.

This exists to support construction of range for parallel iteration over the entire container.

Referenced by std::distance().

template<class hashT>
bool madness::Hash_private::HashIterator< hashT >::operator!= ( const HashIterator< hashT > &  a) const
inline
template<class hashT>
reference madness::Hash_private::HashIterator< hashT >::operator* ( ) const
inline
template<class hashT>
HashIterator& madness::Hash_private::HashIterator< hashT >::operator++ ( )
inline
template<class hashT>
HashIterator madness::Hash_private::HashIterator< hashT >::operator++ ( int  )
inline
template<class hashT>
pointer madness::Hash_private::HashIterator< hashT >::operator-> ( ) const
inline
template<class hashT>
bool madness::Hash_private::HashIterator< hashT >::operator== ( const HashIterator< hashT > &  a) const
inline

Friends And Related Function Documentation

template<class hashT>
template<class otherHashT >
friend class HashIterator
friend

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