8#ifndef INCLUDED_BSLSTL_RANDOMACCESSITERATOR
9#define INCLUDED_BSLSTL_RANDOMACCESSITERATOR
238#include <bslscm_version.h>
279template <
class T,
class ITER_IMP,
class TAG_TYPE =
280 std::random_access_iterator_tag>
378template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
389template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
397template <
class T,
class ITER_IMP,
class TAG_TYPE>
405template <
class T,
class ITER_IMP,
class TAG_TYPE>
413template <
class T,
class ITER_IMP,
class TAG_TYPE>
422template <
class T,
class ITER_IMP,
class TAG_TYPE>
436template <
class T,
class ITER_IMP,
class TAG_TYPE>
447template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
458template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
468template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
479template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
490template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
503template <
class T,
class ITER_IMP,
class TAG_TYPE>
509template <
class T,
class ITER_IMP,
class TAG_TYPE>
517template <
class T,
class ITER_IMP,
class TAG_TYPE>
527template <
class T,
class ITER_IMP,
class TAG_TYPE>
533 this->imp() = other.
imp();
537template <
class T,
class ITER_IMP,
class TAG_TYPE>
546template <
class T,
class ITER_IMP,
class TAG_TYPE>
555template <
class T,
class ITER_IMP,
class TAG_TYPE>
560 this->imp() += offset;
564template <
class T,
class ITER_IMP,
class TAG_TYPE>
569 this->imp() += -offset;
574template <
class T,
class ITER_IMP,
class TAG_TYPE>
587template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
590 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
592 return lhs.imp() == rhs.imp();
595template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
598 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
603template <
class T,
class ITER_IMP,
class TAG_TYPE>
608 RandomAccessIterator<T,ITER_IMP,TAG_TYPE> tmp(iter);
613template <
class T,
class ITER_IMP,
class TAG_TYPE>
618 RandomAccessIterator<T,ITER_IMP,TAG_TYPE> tmp(iter);
623template <
class T,
class ITER_IMP,
class TAG_TYPE>
629 RandomAccessIterator<T,ITER_IMP,TAG_TYPE> result(lhs);
634template <
class T,
class ITER_IMP,
class TAG_TYPE>
638 const RandomAccessIterator<T,ITER_IMP,TAG_TYPE>& rhs)
643template <
class T,
class ITER_IMP,
class TAG_TYPE>
652template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
655 const RandomAccessIterator<T1,ITER_IMP,TAG_TYPE>& lhs,
656 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
658 return lhs.imp() -
rhs.imp();
661template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
664 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
666 return lhs.imp() <
rhs.imp();
669template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
672 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
677template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
680 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
685template <
class T1,
class T2,
class ITER_IMP,
class TAG_TYPE>
688 const RandomAccessIterator<T2,ITER_IMP,TAG_TYPE>& rhs)
693#ifndef BDE_OPENSOURCE_PUBLICATION
698#ifdef bslstl_RandomAccessIterator
699#undef bslstl_RandomAccessIterator
702#define bslstl_RandomAccessIterator bslstl::RandomAccessIterator
Definition bslstl_bidirectionaliterator.h:268
ITER_IMP & imp()
Return a modifiable reference to the implementation object.
Definition bslstl_forwarditerator.h:366
Definition bslstl_randomaccessiterator.h:282
std::ptrdiff_t difference_type
Definition bslstl_randomaccessiterator.h:292
RandomAccessIterator & operator++()
Definition bslstl_randomaccessiterator.h:540
std::random_access_iterator_tag iterator_category
Definition bslstl_randomaccessiterator.h:295
T & operator[](difference_type index) const
Definition bslstl_randomaccessiterator.h:576
RandomAccessIterator & operator=(const RandomAccessIterator< UnCvqT, ITER_IMP, TAG_TYPE > &other)
Definition bslstl_randomaccessiterator.h:530
RandomAccessIterator & operator-=(difference_type offset)
Definition bslstl_randomaccessiterator.h:567
UnCvqT value_type
Definition bslstl_randomaccessiterator.h:291
T & reference
Definition bslstl_randomaccessiterator.h:294
T * pointer
Definition bslstl_randomaccessiterator.h:293
RandomAccessIterator & operator+=(difference_type offset)
Definition bslstl_randomaccessiterator.h:558
RandomAccessIterator()
Definition bslstl_randomaccessiterator.h:505
RandomAccessIterator & operator--()
Definition bslstl_randomaccessiterator.h:549
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
ALLOCATOR const STRING_VIEW_LIKE_TYPE & rhs
Definition bslstl_string.h:3918
ALLOCATOR & lhs
Definition bslstl_string.h:3917
Definition bslstl_algorithm.h:84
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:128