8#ifndef INCLUDED_BSLSTL_HASHTABLEITERATOR
9#define INCLUDED_BSLSTL_HASHTABLEITERATOR
149#include <bslscm_version.h>
163#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
184#if defined(BSLS_LIBRARYFEATURES_STDCPP_LIBCSTD)
189template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
190class HashTableIterator
191:
public std::iterator<std::forward_iterator_tag, VALUE_TYPE> {
193template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
255#if defined(BSLS_COMPILERFEATURES_SUPPORT_DEFAULTED_FUNCTIONS)
303template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
306template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
310template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
314template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
324template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
327template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
331template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
335template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
345template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
359template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
367template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
375template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
379: d_node_p(original.node())
383template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
389 this->d_node_p = this->d_node_p->nextLink();
392template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
394HashTableIterator<VALUE_TYPE, DIFFERENCE_TYPE>&
404template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
415template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
427template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
436template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
441 return lhs.node() == rhs.node();
444template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
450 return lhs.node() == rhs.node();
453template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
459 return lhs.node() == rhs.node();
462template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
468 return lhs.node() == rhs.node();
471template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
476 return lhs.node() != rhs.node();
479template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
485 return lhs.node() != rhs.node();
488template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
494 return lhs.node() != rhs.node();
497template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
503 return lhs.node() != rhs.node();
506template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
508HashTableIterator<VALUE_TYPE, DIFFERENCE_TYPE>
Definition bslalg_bidirectionallink.h:347
Definition bslalg_bidirectionalnode.h:357
Definition bslstl_hashtableiterator.h:194
bsl::forward_iterator_tag iterator_category
Standard iterator defined types [24.4.2].
Definition bslstl_hashtableiterator.h:209
reference operator*() const
Definition bslstl_hashtableiterator.h:407
VALUE_TYPE * pointer
Definition bslstl_hashtableiterator.h:205
NcType value_type
Definition bslstl_hashtableiterator.h:203
VALUE_TYPE & reference
Definition bslstl_hashtableiterator.h:206
HashTableIterator()
Definition bslstl_hashtableiterator.h:362
HashTableIterator & operator++()
Definition bslstl_hashtableiterator.h:395
bslalg::BidirectionalLink * node() const
Definition bslstl_hashtableiterator.h:430
DIFFERENCE_TYPE difference_type
Definition bslstl_hashtableiterator.h:204
HashTableIterator(const HashTableIterator &original)=default
pointer operator->() const
Definition bslstl_hashtableiterator.h:418
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bslstl_algorithm.h:84
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:128
static TYPE * addressOf(TYPE &obj)
Definition bsls_util.h:312