8#ifndef INCLUDED_BSLSTL_HASHTABLEITERATOR
9#define INCLUDED_BSLSTL_HASHTABLEITERATOR
147#include <bslscm_version.h>
161#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
182#if defined(BSLS_LIBRARYFEATURES_STDCPP_LIBCSTD)
187template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
188class HashTableIterator
189:
public std::iterator<std::forward_iterator_tag, VALUE_TYPE> {
191template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
249#if defined(BSLS_COMPILERFEATURES_SUPPORT_DEFAULTED_FUNCTIONS)
293template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
296template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
300template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
304template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
314template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
317template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
321template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
325template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
334template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
348template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
356template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
364template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
368: d_node_p(original.node())
372template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
378 this->d_node_p = this->d_node_p->nextLink();
381template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
383HashTableIterator<VALUE_TYPE, DIFFERENCE_TYPE>&
393template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
404template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
416template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
425template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
430 return lhs.node() == rhs.node();
433template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
439 return lhs.node() == rhs.node();
442template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
448 return lhs.node() == rhs.node();
451template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
457 return lhs.node() == rhs.node();
460template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
465 return lhs.node() != rhs.node();
468template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
474 return lhs.node() != rhs.node();
477template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
483 return lhs.node() != rhs.node();
486template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
492 return lhs.node() != rhs.node();
495template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
497HashTableIterator<VALUE_TYPE, DIFFERENCE_TYPE>
Definition bslalg_bidirectionallink.h:346
Definition bslalg_bidirectionalnode.h:357
Definition bslstl_hashtableiterator.h:192
bsl::forward_iterator_tag iterator_category
Standard iterator defined types [24.4.2].
Definition bslstl_hashtableiterator.h:207
reference operator*() const
Definition bslstl_hashtableiterator.h:396
VALUE_TYPE * pointer
Definition bslstl_hashtableiterator.h:203
NcType value_type
Definition bslstl_hashtableiterator.h:201
VALUE_TYPE & reference
Definition bslstl_hashtableiterator.h:204
HashTableIterator()
Definition bslstl_hashtableiterator.h:351
HashTableIterator & operator++()
Definition bslstl_hashtableiterator.h:384
bslalg::BidirectionalLink * node() const
Definition bslstl_hashtableiterator.h:419
DIFFERENCE_TYPE difference_type
Definition bslstl_hashtableiterator.h:202
HashTableIterator(const HashTableIterator &original)=default
pointer operator->() const
Definition bslstl_hashtableiterator.h:407
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1762
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition bslstl_algorithm.h:82
BidirectionalIterator< T, ITER_IMP, TAG_TYPE > operator++(BidirectionalIterator< T, ITER_IMP, TAG_TYPE > &iter, int)
remove_const< typenameremove_volatile< t_TYPE >::type >::type type
Definition bslmf_removecv.h:126
static TYPE * addressOf(TYPE &obj)
Definition bsls_util.h:305