|
BDE 4.14.0 Production release
|
#include <bslstl_bidirectionaliterator.h>
Public Types | |
| typedef UnCvqT | value_type |
| typedef std::ptrdiff_t | difference_type |
| typedef T * | pointer |
| typedef T & | reference |
| typedef std::bidirectional_iterator_tag | iterator_category |
Public Types inherited from bslstl::ForwardIterator< T, ITER_IMP, TAG_TYPE > | |
| typedef UnCvqT | value_type |
| typedef std::ptrdiff_t | difference_type |
| typedef T * | pointer |
| typedef T & | reference |
| typedef std::forward_iterator_tag | iterator_category |
Given an ITER_IMP type that implements a minimal subset of an iterator interface, this template generates a complete iterator that meets all of the requirements of a "bidirectional iterator" in the C++ standard. If T is const-qualified, then the resulting type is a constant iterator. T shall not be a function, reference type or void. ITER_IMP must provide public operations so that, for objects i and j of type ITER_IMP, the following operations are supported:
| typedef std::ptrdiff_t bslstl::BidirectionalIterator< T, ITER_IMP, TAG_TYPE >::difference_type |
| typedef std::bidirectional_iterator_tag bslstl::BidirectionalIterator< T, ITER_IMP, TAG_TYPE >::iterator_category |
| typedef T* bslstl::BidirectionalIterator< T, ITER_IMP, TAG_TYPE >::pointer |
| typedef T& bslstl::BidirectionalIterator< T, ITER_IMP, TAG_TYPE >::reference |
| typedef UnCvqT bslstl::BidirectionalIterator< T, ITER_IMP, TAG_TYPE >::value_type |
|
inline |
Construct the default value for this iterator type. All default- constructed BidirectionalIterator objects represent non-dereferenceable iterators into the same empty range. They do not have a singular value unless an object of the type specified by the template parameter ITER_IMP has a singular value after value-initialization.
|
inline |
Construct a bidirectional iterator having the specified implementation of the parameterized ITER_IMP type.
| bslstl::BidirectionalIterator< T, ITER_IMP, TAG_TYPE >::BidirectionalIterator | ( | const BidirectionalIterator< T, ITER_IMP, TAG_TYPE > & | original | ) |
|
inline |
Construct a bidirectional iterator from the specified other iterator of another (compatible) BidirectionalIterator type, e.g., a mutable iterator of the same type. Note that this constructor may be the copy constructor (inhibiting the implicit declaration of a copy constructor above), or may be an additional overload.
| bslstl::BidirectionalIterator< T, ITER_IMP, TAG_TYPE >::~BidirectionalIterator | ( | ) |
Destroy this iterator. Note that this method's definition is compiler generated.
|
inline |
Increment to the next element. Return a reference to this modifiable iterator. The behavior is undefined if, on entry, this iterator has the past-the-end value for an iterator over the underlying sequence.
|
inline |
Decrement to the previous element. Return a reference to this modifiable iterator. The behavior is undefined if, on entry, this iterator has the same value as an iterator the refers to the start of the underlying sequence.
| BidirectionalIterator & bslstl::BidirectionalIterator< T, ITER_IMP, TAG_TYPE >::operator= | ( | const BidirectionalIterator< T, ITER_IMP, TAG_TYPE > & | rhs | ) |
Copy the value of the specified rhs to this iterator. Return a reference to this modifiable object. Note that this method's definition is compiler generated.
|
inline |
Copy the value of the specified rhs of another (compatible) BidirectionalIterator type, (e.g., a mutable iterator of the same type) to this iterator. Return a reference to this modifiable object. Note that this method may be the copy-assignment operator (inhibiting the implicit declaration of a copy-assignment operator above), or may be an additional overload.