STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Public Attributes | List of all members
_Vector_const_iterator< _Myvec > Class Template Reference
Inheritance diagram for _Vector_const_iterator< _Myvec >:
_Iterator012< random_access_iterator_tag, _Myvec::value_type, _Myvec::difference_type, _Myvec::const_pointer, _Myvec::const_reference, _Iterator_base > _Iterator_base0 _Vector_iterator< _Myvec >

Public Types

typedef _Vector_const_iterator< _Myvec > _Myiter
 
typedef random_access_iterator_tag iterator_category
 
typedef _Myvec::value_type value_type
 
typedef _Myvec::difference_type difference_type
 
typedef _Myvec::const_pointer pointer
 
typedef _Myvec::const_reference reference
 
typedef _Myvec::pointer _Tptr
 
typedef pointer _Unchecked_type
 
- Public Types inherited from _Iterator012< random_access_iterator_tag, _Myvec::value_type, _Myvec::difference_type, _Myvec::const_pointer, _Myvec::const_reference, _Iterator_base >
typedef random_access_iterator_tag iterator_category
 
typedef _Myvec::value_type value_type
 
typedef _Myvec::difference_type difference_type
 
typedef _Myvec::const_pointer pointer
 
typedef _Myvec::const_reference reference
 

Public Member Functions

 _Vector_const_iterator ()
 
 _Vector_const_iterator (_Tptr _Parg, const _Container_base *_Pvector)
 
_Myiter_Rechecked (_Unchecked_type _Right)
 
_Unchecked_type _Unchecked () const
 
reference operator* () const
 
pointer operator-> () const
 
_Myiteroperator++ ()
 
_Myiter operator++ (int)
 
_Myiteroperator-- ()
 
_Myiter operator-- (int)
 
_Myiteroperator+= (difference_type _Off)
 
_Myiter operator+ (difference_type _Off) const
 
_Myiteroperator-= (difference_type _Off)
 
_Myiter operator- (difference_type _Off) const
 
difference_type operator- (const _Myiter &_Right) const
 
reference operator[] (difference_type _Off) const
 
bool operator== (const _Myiter &_Right) const
 
bool operator!= (const _Myiter &_Right) const
 
bool operator< (const _Myiter &_Right) const
 
bool operator> (const _Myiter &_Right) const
 
bool operator<= (const _Myiter &_Right) const
 
bool operator>= (const _Myiter &_Right) const
 
void _Compat (const _Myiter &) const
 
- Public Member Functions inherited from _Iterator_base0
void _Adopt (const void *)
 
const _Container_base0_Getcont () const
 

Public Attributes

_Tptr _Ptr
 

Member Typedef Documentation

template<class _Myvec>
typedef _Vector_const_iterator<_Myvec> _Vector_const_iterator< _Myvec >::_Myiter
template<class _Myvec>
typedef _Myvec::pointer _Vector_const_iterator< _Myvec >::_Tptr
template<class _Myvec>
typedef pointer _Vector_const_iterator< _Myvec >::_Unchecked_type
template<class _Myvec>
typedef _Myvec::difference_type _Vector_const_iterator< _Myvec >::difference_type
template<class _Myvec>
typedef random_access_iterator_tag _Vector_const_iterator< _Myvec >::iterator_category
template<class _Myvec>
typedef _Myvec::const_pointer _Vector_const_iterator< _Myvec >::pointer
template<class _Myvec>
typedef _Myvec::const_reference _Vector_const_iterator< _Myvec >::reference
template<class _Myvec>
typedef _Myvec::value_type _Vector_const_iterator< _Myvec >::value_type

Constructor & Destructor Documentation

template<class _Myvec>
_Vector_const_iterator< _Myvec >::_Vector_const_iterator ( )
inline
37  : _Ptr()
38  { // construct with null pointer
39  }
_Tptr _Ptr
Definition: vector:256
template<class _Myvec>
_Vector_const_iterator< _Myvec >::_Vector_const_iterator ( _Tptr  _Parg,
const _Container_base _Pvector 
)
inline
42  : _Ptr(_Parg)
43  { // construct with pointer _Parg
44  this->_Adopt(_Pvector);
45  }
_Tptr _Ptr
Definition: vector:256
void _Adopt(const void *)
Definition: xutility:73

Member Function Documentation

template<class _Myvec>
void _Vector_const_iterator< _Myvec >::_Compat ( const _Myiter ) const
inline
252  { // test for compatible iterator pair
253  }
template<class _Myvec>
_Myiter& _Vector_const_iterator< _Myvec >::_Rechecked ( _Unchecked_type  _Right)
inline
50  { // reset from unchecked iterator
52  return (*this);
53  }
auto _Const_cast(_Ptrty _Ptr)
Definition: xmemory0:303
_Tptr _Ptr
Definition: vector:256
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<class _Myvec>
_Unchecked_type _Vector_const_iterator< _Myvec >::_Unchecked ( ) const
inline
56  { // make an unchecked iterator
57  return (_Ptr);
58  }
_Tptr _Ptr
Definition: vector:256
template<class _Myvec>
bool _Vector_const_iterator< _Myvec >::operator!= ( const _Myiter _Right) const
inline
210  { // test for iterator inequality
211  return (!(*this == _Right));
212  }
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<class _Myvec>
reference _Vector_const_iterator< _Myvec >::operator* ( ) const
inline
61  { // return designated object
62  #if _ITERATOR_DEBUG_LEVEL == 2
63  const auto _Mycont = static_cast<const _Myvec *>(this->_Getcont());
64  if (_Mycont == 0
65  || _Ptr == _Tptr()
66  || _Ptr < _Mycont->_Myfirst
67  || _Mycont->_Mylast <= _Ptr)
68  { // report error
69  _DEBUG_ERROR("vector iterator not dereferencable");
70  }
71 
72  #elif _ITERATOR_DEBUG_LEVEL == 1
74  const auto _Mycont = static_cast<const _Myvec *>(this->_Getcont());
75  _SCL_SECURE_VALIDATE(_Mycont != 0);
76  _SCL_SECURE_VALIDATE_RANGE(_Mycont->_Myfirst <= _Ptr && _Ptr < _Mycont->_Mylast);
77  #endif /* _ITERATOR_DEBUG_LEVEL */
78 
80 
81  return (*_Ptr);
82  }
const _Container_base0 * _Getcont() const
Definition: xutility:77
_Tptr _Ptr
Definition: vector:256
_Myvec::pointer _Tptr
Definition: vector:34
#define _Analysis_assume_(expr)
Definition: sal.h:2896
#define _SCL_SECURE_VALIDATE_RANGE(cond)
Definition: yvals.h:432
#define _DEBUG_ERROR(mesg)
Definition: xutility:33
#define _SCL_SECURE_VALIDATE(cond)
Definition: yvals.h:431
template<class _Myvec>
_Myiter _Vector_const_iterator< _Myvec >::operator+ ( difference_type  _Off) const
inline
176  { // return this + integer
177  _Myiter _Tmp = *this;
178  return (_Tmp += _Off);
179  }
_Vector_const_iterator< _Myvec > _Myiter
Definition: vector:27
template<class _Myvec>
_Myiter& _Vector_const_iterator< _Myvec >::operator++ ( )
inline
90  { // preincrement
91  #if _ITERATOR_DEBUG_LEVEL == 2
92  const auto _Mycont = static_cast<const _Myvec *>(this->_Getcont());
93  if (_Mycont == 0
94  || _Ptr == nullptr_t{}
95  || _Mycont->_Mylast <= _Ptr)
96  { // report error
97  _DEBUG_ERROR("vector iterator not incrementable");
98  }
99 
100  #elif _ITERATOR_DEBUG_LEVEL == 1
102  const auto _Mycont = static_cast<const _Myvec *>(this->_Getcont());
103  _SCL_SECURE_VALIDATE(_Mycont != 0);
104  _SCL_SECURE_VALIDATE_RANGE(_Ptr < _Mycont->_Mylast);
105  #endif /* _ITERATOR_DEBUG_LEVEL */
106 
107  ++_Ptr;
108  return (*this);
109  }
const _Container_base0 * _Getcont() const
Definition: xutility:77
_Tptr _Ptr
Definition: vector:256
_Myvec::pointer _Tptr
Definition: vector:34
#define _SCL_SECURE_VALIDATE_RANGE(cond)
Definition: yvals.h:432
#define _DEBUG_ERROR(mesg)
Definition: xutility:33
#define _SCL_SECURE_VALIDATE(cond)
Definition: yvals.h:431
template<class _Myvec>
_Myiter _Vector_const_iterator< _Myvec >::operator++ ( int  )
inline
112  { // postincrement
113  _Myiter _Tmp = *this;
114  ++*this;
115  return (_Tmp);
116  }
_Vector_const_iterator< _Myvec > _Myiter
Definition: vector:27
template<class _Myvec>
_Myiter& _Vector_const_iterator< _Myvec >::operator+= ( difference_type  _Off)
inline
148  { // increment by integer
149  #if _ITERATOR_DEBUG_LEVEL == 2
150  if (_Off != 0)
151  {
152  const auto _Mycont = static_cast<const _Myvec *>(this->_Getcont());
153  if (_Mycont == 0
154  || _Ptr + _Off < _Mycont->_Myfirst
155  || _Mycont->_Mylast < _Ptr + _Off)
156  {
157  _DEBUG_ERROR("vector iterator + offset out of range");
158  }
159  }
160 
161  #elif _ITERATOR_DEBUG_LEVEL == 1
162  if (_Off != 0)
163  {
164  const auto _Mycont = static_cast<const _Myvec *>(this->_Getcont());
165  _SCL_SECURE_VALIDATE(_Mycont != 0);
166  _SCL_SECURE_VALIDATE_RANGE(_Mycont->_Myfirst <= _Ptr + _Off
167  && _Ptr + _Off <= _Mycont->_Mylast);
168  }
169  #endif /* _ITERATOR_DEBUG_LEVEL */
170 
171  _Ptr += _Off;
172  return (*this);
173  }
const _Container_base0 * _Getcont() const
Definition: xutility:77
_Tptr _Ptr
Definition: vector:256
#define _SCL_SECURE_VALIDATE_RANGE(cond)
Definition: yvals.h:432
#define _DEBUG_ERROR(mesg)
Definition: xutility:33
#define _SCL_SECURE_VALIDATE(cond)
Definition: yvals.h:431
template<class _Myvec>
_Myiter _Vector_const_iterator< _Myvec >::operator- ( difference_type  _Off) const
inline
187  { // return this - integer
188  _Myiter _Tmp = *this;
189  return (_Tmp -= _Off);
190  }
_Vector_const_iterator< _Myvec > _Myiter
Definition: vector:27
template<class _Myvec>
difference_type _Vector_const_iterator< _Myvec >::operator- ( const _Myiter _Right) const
inline
193  { // return difference of iterators
194  _Compat(_Right);
195  return (_Ptr - _Right._Ptr);
196  }
_Tptr _Ptr
Definition: vector:256
void _Compat(const _Myiter &) const
Definition: vector:251
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<class _Myvec>
_Myiter& _Vector_const_iterator< _Myvec >::operator-- ( )
inline
119  { // predecrement
120  #if _ITERATOR_DEBUG_LEVEL == 2
121  const auto _Mycont = static_cast<const _Myvec *>(this->_Getcont());
122  if (_Mycont == 0
123  || _Ptr == nullptr_t{}
124  || _Ptr <= _Mycont->_Myfirst)
125  { // report error
126  _DEBUG_ERROR("vector iterator not decrementable");
127  }
128 
129  #elif _ITERATOR_DEBUG_LEVEL == 1
131  const auto _Mycont = static_cast<const _Myvec *>(this->_Getcont());
132  _SCL_SECURE_VALIDATE(_Mycont != 0);
133  _SCL_SECURE_VALIDATE_RANGE(_Mycont->_Myfirst < _Ptr);
134  #endif /* _ITERATOR_DEBUG_LEVEL */
135 
136  --_Ptr;
137  return (*this);
138  }
const _Container_base0 * _Getcont() const
Definition: xutility:77
_Tptr _Ptr
Definition: vector:256
_Myvec::pointer _Tptr
Definition: vector:34
#define _SCL_SECURE_VALIDATE_RANGE(cond)
Definition: yvals.h:432
#define _DEBUG_ERROR(mesg)
Definition: xutility:33
#define _SCL_SECURE_VALIDATE(cond)
Definition: yvals.h:431
template<class _Myvec>
_Myiter _Vector_const_iterator< _Myvec >::operator-- ( int  )
inline
141  { // postdecrement
142  _Myiter _Tmp = *this;
143  --*this;
144  return (_Tmp);
145  }
_Vector_const_iterator< _Myvec > _Myiter
Definition: vector:27
template<class _Myvec>
_Myiter& _Vector_const_iterator< _Myvec >::operator-= ( difference_type  _Off)
inline
182  { // decrement by integer
183  return (*this += -_Off);
184  }
template<class _Myvec>
pointer _Vector_const_iterator< _Myvec >::operator-> ( ) const
inline
85  { // return pointer to class object
86  return (pointer_traits<pointer>::pointer_to(**this));
87  }
Definition: xmemory0:254
template<class _Myvec>
bool _Vector_const_iterator< _Myvec >::operator< ( const _Myiter _Right) const
inline
215  { // test if this < _Right
216  _Compat(_Right);
217  return (_Ptr < _Right._Ptr);
218  }
_Tptr _Ptr
Definition: vector:256
void _Compat(const _Myiter &) const
Definition: vector:251
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<class _Myvec>
bool _Vector_const_iterator< _Myvec >::operator<= ( const _Myiter _Right) const
inline
226  { // test if this <= _Right
227  return (!(_Right < *this));
228  }
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<class _Myvec>
bool _Vector_const_iterator< _Myvec >::operator== ( const _Myiter _Right) const
inline
204  { // test for iterator equality
205  _Compat(_Right);
206  return (_Ptr == _Right._Ptr);
207  }
_Tptr _Ptr
Definition: vector:256
void _Compat(const _Myiter &) const
Definition: vector:251
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<class _Myvec>
bool _Vector_const_iterator< _Myvec >::operator> ( const _Myiter _Right) const
inline
221  { // test if this > _Right
222  return (_Right < *this);
223  }
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<class _Myvec>
bool _Vector_const_iterator< _Myvec >::operator>= ( const _Myiter _Right) const
inline
231  { // test if this >= _Right
232  return (!(*this < _Right));
233  }
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<class _Myvec>
reference _Vector_const_iterator< _Myvec >::operator[] ( difference_type  _Off) const
inline
199  { // subscript
200  return (*(*this + _Off));
201  }

Member Data Documentation

template<class _Myvec>
_Tptr _Vector_const_iterator< _Myvec >::_Ptr

The documentation for this class was generated from the following file: