8#ifndef INCLUDED_BSLSTL_RANDOMACCESSITERATOR
9#define INCLUDED_BSLSTL_RANDOMACCESSITERATOR
236#include <bslscm_version.h>
277template <
class T,
class ITER_IMP,
class TAG_TYPE =
278 std::random_access_iterator_tag>
368template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
378template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
385template <
class T,
class ITER_IMP,
class TAG_TYPE>
392template <
class T,
class ITER_IMP,
class TAG_TYPE>
399template <
class T,
class ITER_IMP,
class TAG_TYPE>
407template <
class T,
class ITER_IMP,
class TAG_TYPE>
419template <
class T,
class ITER_IMP,
class TAG_TYPE>
428template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
438template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
447template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
457template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
467template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
480template <
class T,
class ITER_IMP,
class TAG_TYPE>
486template <
class T,
class ITER_IMP,
class TAG_TYPE>
494template <
class T,
class ITER_IMP,
class TAG_TYPE>
504template <
class T,
class ITER_IMP,
class TAG_TYPE>
510 this->imp() = other.
imp();
514template <
class T,
class ITER_IMP,
class TAG_TYPE>
523template <
class T,
class ITER_IMP,
class TAG_TYPE>
532template <
class T,
class ITER_IMP,
class TAG_TYPE>
537 this->imp() += offset;
541template <
class T,
class ITER_IMP,
class TAG_TYPE>
546 this->imp() += -offset;
551template <
class T,
class ITER_IMP,
class TAG_TYPE>
564template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
567 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
569 return lhs.
imp() == rhs.imp();
572template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
575 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
577 return !(lhs == rhs);
580template <
class T,
class ITER_IMP,
class TAG_TYPE>
585 RandomAccessIterator<T,ITER_IMP,TAG_TYPE> tmp(iter);
590template <
class T,
class ITER_IMP,
class TAG_TYPE>
595 RandomAccessIterator<T,ITER_IMP,TAG_TYPE> tmp(iter);
600template <
class T,
class ITER_IMP,
class TAG_TYPE>
606 RandomAccessIterator<T,ITER_IMP,TAG_TYPE> result(lhs);
611template <
class T,
class ITER_IMP,
class TAG_TYPE>
615 const RandomAccessIterator<T,ITER_IMP,TAG_TYPE>& rhs)
620template <
class T,
class ITER_IMP,
class TAG_TYPE>
629template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
632 const RandomAccessIterator<T1,ITER_IMP,TAG_TYPE>& lhs,
633 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
635 return lhs.
imp() - rhs.imp();
638template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
641 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
643 return lhs.imp() < rhs.imp();
646template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
649 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
654template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
657 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
662template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
665 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
670#ifndef BDE_OPENSOURCE_PUBLICATION
675#ifdef bslstl_RandomAccessIterator
676#undef bslstl_RandomAccessIterator
679#define bslstl_RandomAccessIterator bslstl::RandomAccessIterator
Definition bslstl_bidirectionaliterator.h:266
ITER_IMP & imp()
Return a modifiable reference to the implementation object.
Definition bslstl_forwarditerator.h:353
Definition bslstl_randomaccessiterator.h:280
std::ptrdiff_t difference_type
Definition bslstl_randomaccessiterator.h:290
RandomAccessIterator & operator++()
Definition bslstl_randomaccessiterator.h:517
std::random_access_iterator_tag iterator_category
Definition bslstl_randomaccessiterator.h:293
T & operator[](difference_type index) const
Definition bslstl_randomaccessiterator.h:553
RandomAccessIterator & operator=(const RandomAccessIterator< UnCvqT, ITER_IMP, TAG_TYPE > &other)
Definition bslstl_randomaccessiterator.h:507
RandomAccessIterator & operator-=(difference_type offset)
Definition bslstl_randomaccessiterator.h:544
UnCvqT value_type
Definition bslstl_randomaccessiterator.h:289
T & reference
Definition bslstl_randomaccessiterator.h:292
T * pointer
Definition bslstl_randomaccessiterator.h:291
RandomAccessIterator & operator+=(difference_type offset)
Definition bslstl_randomaccessiterator.h:535
RandomAccessIterator()
Definition bslstl_randomaccessiterator.h:482
RandomAccessIterator & operator--()
Definition bslstl_randomaccessiterator.h:526
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition bslstl_algorithm.h:82
bool operator>=(const RandomAccessIterator< T1, ITER_IMP, TAG_TYPE > &lhs, const RandomAccessIterator< T2, ITER_IMP, TAG_TYPE > &rhs)
RandomAccessIterator< T, ITER_IMP, TAG_TYPE > operator-(const RandomAccessIterator< T, ITER_IMP, TAG_TYPE > &lhs, std::ptrdiff_t rhs)
bool operator<(const RandomAccessIterator< T1, ITER_IMP, TAG_TYPE > &lhs, const RandomAccessIterator< T2, ITER_IMP, TAG_TYPE > &rhs)
BidirectionalIterator< T, ITER_IMP, TAG_TYPE > operator--(BidirectionalIterator< T, ITER_IMP, TAG_TYPE > &iter, int)
bool operator<=(const RandomAccessIterator< T1, ITER_IMP, TAG_TYPE > &lhs, const RandomAccessIterator< T2, ITER_IMP, TAG_TYPE > &rhs)
BidirectionalIterator< T, ITER_IMP, TAG_TYPE > operator++(BidirectionalIterator< T, ITER_IMP, TAG_TYPE > &iter, int)
bool operator==(const BidirectionalIterator< T1, ITER_IMP, TAG_TYPE > &lhs, const BidirectionalIterator< T2, ITER_IMP, TAG_TYPE > &rhs)
RandomAccessIterator< T, ITER_IMP, TAG_TYPE > operator+(const RandomAccessIterator< T, ITER_IMP, TAG_TYPE > &lhs, std::ptrdiff_t rhs)
bool operator>(const RandomAccessIterator< T1, ITER_IMP, TAG_TYPE > &lhs, const RandomAccessIterator< T2, ITER_IMP, TAG_TYPE > &rhs)
bool operator!=(const BidirectionalIterator< T1, ITER_IMP, TAG_TYPE > &lhs, const BidirectionalIterator< T2, ITER_IMP, TAG_TYPE > &rhs)
remove_const< typenameremove_volatile< t_TYPE >::type >::type type
Definition bslmf_removecv.h:126