8#ifndef INCLUDED_BSLSTL_HASHTABLEBUCKETITERATOR
9#define INCLUDED_BSLSTL_HASHTABLEBUCKETITERATOR
145#include <bslscm_version.h>
159#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
181#if defined(BSLS_LIBRARYFEATURES_STDCPP_LIBCSTD)
186template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
187class HashTableBucketIterator
188:
public std::iterator<std::forward_iterator_tag, VALUE_TYPE> {
190template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
329template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
333template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
337template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
341template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
351template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
355template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
359template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
363template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
375template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
389template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
398template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
402: d_node_p(bucket ? bucket->first() : 0)
407template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
417template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
421: d_node_p(original.node())
422, d_bucket_p(original.bucket())
427template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
433 d_node_p = rhs.node();
434 d_bucket_p = rhs.bucket();
438template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
447 if (this->d_bucket_p->last() == this->d_node_p) {
451 this->d_node_p = this->d_node_p->nextLink();
455template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
457HashTableBucketIterator<VALUE_TYPE, DIFFERENCE_TYPE>&
469template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
482template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
496template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
501 return this->d_node_p;
504template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
509 return this->d_bucket_p;
512template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
520 return lhs.node() == rhs.node();
523template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
531 return lhs.node() == rhs.node();
534template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
542 return lhs.node() == rhs.node();
545template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
553 return lhs.node() == rhs.node();
556template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
564 return lhs.node() != rhs.node();
567template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
575 return lhs.node() != rhs.node();
578template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
586 return lhs.node() != rhs.node();
589template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
597 return lhs.node() != rhs.node();
600template <
class VALUE_TYPE,
class DIFFERENCE_TYPE>
602HashTableBucketIterator<VALUE_TYPE, DIFFERENCE_TYPE>
Definition bslalg_bidirectionallink.h:347
Definition bslalg_bidirectionalnode.h:357
Definition bslstl_hashtablebucketiterator.h:191
bslalg::BidirectionalLink * node() const
Definition bslstl_hashtablebucketiterator.h:499
NonConstType value_type
Definition bslstl_hashtablebucketiterator.h:201
reference operator*() const
Definition bslstl_hashtablebucketiterator.h:474
HashTableBucketIterator()
Definition bslstl_hashtablebucketiterator.h:392
VALUE_TYPE * pointer
Definition bslstl_hashtablebucketiterator.h:203
const bslalg::HashTableBucket * bucket() const
Definition bslstl_hashtablebucketiterator.h:507
~HashTableBucketIterator()=default
pointer operator->() const
Definition bslstl_hashtablebucketiterator.h:487
HashTableBucketIterator(const HashTableBucketIterator &original)=default
std::forward_iterator_tag iterator_category
Standard iterator defined types [24.4.2].
Definition bslstl_hashtablebucketiterator.h:207
DIFFERENCE_TYPE difference_type
Definition bslstl_hashtablebucketiterator.h:202
HashTableBucketIterator & operator=(const HashTableBucketIterator &) HashTableBucketIterator &operator
Definition bslstl_hashtablebucketiterator.h:430
HashTableBucketIterator & operator++()
Definition bslstl_hashtablebucketiterator.h:459
VALUE_TYPE & reference
Definition bslstl_hashtablebucketiterator.h:204
#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
Definition bslalg_hashtablebucket.h:297
static TYPE * addressOf(TYPE &obj)
Definition bsls_util.h:312