epoc32/include/stdapis/stlport/stl/_iterator_old.h
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 2fe1408b6811
child 4 837f303aceeb
     1.1 --- a/epoc32/include/stdapis/stlport/stl/_iterator_old.h	Tue Mar 16 16:12:26 2010 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,351 +0,0 @@
     1.4 -/*
     1.5 - *
     1.6 - * Copyright (c) 1994
     1.7 - * Hewlett-Packard Company
     1.8 - *
     1.9 - * Copyright (c) 1996-1998
    1.10 - * Silicon Graphics Computer Systems, Inc.
    1.11 - *
    1.12 - * Copyright (c) 1997
    1.13 - * Moscow Center for SPARC Technology
    1.14 - *
    1.15 - * Copyright (c) 1999 
    1.16 - * Boris Fomitchev
    1.17 - *
    1.18 - * This material is provided "as is", with absolutely no warranty expressed
    1.19 - * or implied. Any use is at your own risk.
    1.20 - *
    1.21 - * Permission to use or copy this software for any purpose is hereby granted 
    1.22 - * without fee, provided the above notices are retained on all copies.
    1.23 - * Permission to modify the code and to distribute modified code is granted,
    1.24 - * provided the above notices are retained, and a notice that the code was
    1.25 - * modified is included with the above copyright notice.
    1.26 - *
    1.27 - */
    1.28 -
    1.29 -/* NOTE: This is an internal header file, included by other STL headers.
    1.30 - *   You should not attempt to use it directly.
    1.31 - */
    1.32 -
    1.33 -#ifndef _STLP_INTERNAL_ITERATOR_OLD_H
    1.34 -#define _STLP_INTERNAL_ITERATOR_OLD_H
    1.35 -
    1.36 -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H
    1.37 -# include <stl/_iterator_base.h>
    1.38 -#endif
    1.39 -
    1.40 -_STLP_BEGIN_NAMESPACE
    1.41 -
    1.42 -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES
    1.43 -
    1.44 -template <class _Container>
    1.45 -inline output_iterator_tag _STLP_CALL
    1.46 -iterator_category(const back_insert_iterator<_Container>&) { return output_iterator_tag(); }
    1.47 -template <class _Container>
    1.48 -inline output_iterator_tag _STLP_CALL
    1.49 -iterator_category(const front_insert_iterator<_Container>&) { return output_iterator_tag(); }
    1.50 -template <class _Container>
    1.51 -inline output_iterator_tag _STLP_CALL
    1.52 -iterator_category(const insert_iterator<_Container>&) { return output_iterator_tag(); }
    1.53 -
    1.54 -# endif
    1.55 -
    1.56 -# if defined (_STLP_MSVC50_COMPATIBILITY)
    1.57 -# define __Reference _Reference, class _Pointer
    1.58 -# define Reference__ _Reference, _Pointer
    1.59 -template <class _BidirectionalIterator, class _Tp, 
    1.60 -    __DFL_TMPL_PARAM(_Reference, _Tp& ),
    1.61 -    __DFL_TMPL_PARAM(_Pointer, _Tp*),
    1.62 -    __DFL_TYPE_PARAM(_Distance, ptrdiff_t)> 
    1.63 -# else
    1.64 -# define __Reference _Reference
    1.65 -# define Reference__ _Reference
    1.66 -template <class _BidirectionalIterator, class _Tp, __DFL_TMPL_PARAM(_Reference, _Tp& ),
    1.67 -    __DFL_TYPE_PARAM(_Distance, ptrdiff_t)> 
    1.68 -# endif
    1.69 -class reverse_bidirectional_iterator {
    1.70 -  typedef reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, 
    1.71 -                                         Reference__, _Distance> _Self;
    1.72 -  //  friend inline bool operator== _STLP_NULL_TMPL_ARGS (const _Self& x, const _Self& y);
    1.73 -protected:
    1.74 -  _BidirectionalIterator current;
    1.75 -public:
    1.76 -  typedef bidirectional_iterator_tag iterator_category;
    1.77 -  typedef _Tp                        value_type;
    1.78 -  typedef _Distance                  difference_type;
    1.79 -# if defined (_STLP_MSVC50_COMPATIBILITY)
    1.80 -  typedef _Pointer                   pointer;
    1.81 -# else
    1.82 -  typedef _Tp*                       pointer;
    1.83 -# endif
    1.84 -  typedef _Reference                 reference;
    1.85 -
    1.86 -  reverse_bidirectional_iterator() {}
    1.87 -  explicit reverse_bidirectional_iterator(_BidirectionalIterator __x)
    1.88 -    : current(__x) {}
    1.89 -  _BidirectionalIterator base() const { return current; }
    1.90 -  _Reference operator*() const {
    1.91 -    _BidirectionalIterator __tmp = current;
    1.92 -    return *--__tmp;
    1.93 -  }
    1.94 -# if !(defined _STLP_NO_ARROW_OPERATOR)
    1.95 -  _STLP_DEFINE_ARROW_OPERATOR
    1.96 -# endif
    1.97 -  _Self& operator++() {
    1.98 -    --current;
    1.99 -    return *this;
   1.100 -  }
   1.101 -  _Self operator++(int) {
   1.102 -    _Self __tmp = *this;
   1.103 -    --current;
   1.104 -    return __tmp;
   1.105 -  }
   1.106 -  _Self& operator--() {
   1.107 -    ++current;
   1.108 -    return *this;
   1.109 -  }
   1.110 -  _Self operator--(int) {
   1.111 -    _Self __tmp = *this;
   1.112 -    ++current;
   1.113 -    return __tmp;
   1.114 -  }
   1.115 -};
   1.116 -
   1.117 -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES
   1.118 -template <class _BidirectionalIterator, class _Tp, class __Reference, 
   1.119 -          class _Distance>
   1.120 -inline bidirectional_iterator_tag _STLP_CALL
   1.121 -iterator_category(const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, Reference__, _Distance>&) 
   1.122 -{ return bidirectional_iterator_tag(); }
   1.123 -template <class _BidirectionalIterator, class _Tp, class __Reference, 
   1.124 -  class _Distance>
   1.125 -inline _Tp* _STLP_CALL
   1.126 -value_type(const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, Reference__, _Distance>&)
   1.127 -{ return (_Tp*) 0; }
   1.128 -template <class _BidirectionalIterator, class _Tp, class __Reference, 
   1.129 -          class _Distance>
   1.130 -inline _Distance* _STLP_CALL
   1.131 -distance_type(const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, Reference__, _Distance>&)
   1.132 -{ return (_Distance*) 0; }
   1.133 -#endif
   1.134 -
   1.135 -template <class _BidirectionalIterator, class _Tp, class __Reference, 
   1.136 -          class _Distance>
   1.137 -inline bool  _STLP_CALL operator==(
   1.138 -    const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp,
   1.139 -                                               Reference__, _Distance>& __x,
   1.140 -    const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp,
   1.141 -                                               Reference__, _Distance>& __y)
   1.142 -{
   1.143 -  return __x.base() == __y.base();
   1.144 -}
   1.145 -
   1.146 -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE
   1.147 -
   1.148 -template <class _BiIter, class _Tp, class __Reference, class _Distance>
   1.149 -inline bool  _STLP_CALL operator!=(
   1.150 -    const reverse_bidirectional_iterator<_BiIter, _Tp, Reference__, _Distance>& __x, 
   1.151 -    const reverse_bidirectional_iterator<_BiIter, _Tp, Reference__, _Distance>& __y)
   1.152 -{
   1.153 -  return !(__x == __y);
   1.154 -}
   1.155 -
   1.156 -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */
   1.157 -
   1.158 -#if ! defined ( _STLP_CLASS_PARTIAL_SPECIALIZATION )
   1.159 -
   1.160 -// This is the old version of reverse_iterator, as found in the original
   1.161 -//  HP STL.  It does not use partial specialization.
   1.162 -
   1.163 -template <class _RandomAccessIterator, 
   1.164 -# if defined (__MSL__) && (__MSL__ >= 0x2405) \
   1.165 -	|| defined(__MRC__) || (defined(__SC__) && !defined(__DMC__))		//*ty 03/22/2001 - give the default to the secont param under MPW. 
   1.166 -												// I believe giving the default will cause any harm even though the 2nd type parameter 
   1.167 -												// still have to be provided for T* type iterators.
   1.168 -	__DFL_TMPL_PARAM(_Tp,iterator_traits<_RandomAccessIterator>::value_type),
   1.169 -# else
   1.170 -	class _Tp,
   1.171 -#endif
   1.172 - __DFL_TMPL_PARAM(_Reference,_Tp&),
   1.173 -# if defined (_STLP_MSVC50_COMPATIBILITY)
   1.174 -        __DFL_TMPL_PARAM(_Pointer, _Tp*),
   1.175 -# endif
   1.176 -        __DFL_TYPE_PARAM(_Distance,ptrdiff_t)> 
   1.177 -class reverse_iterator {
   1.178 -  typedef reverse_iterator<_RandomAccessIterator, _Tp, Reference__, _Distance>
   1.179 -          _Self;
   1.180 -protected:
   1.181 -  _RandomAccessIterator __current;
   1.182 -public:
   1.183 -  typedef random_access_iterator_tag iterator_category;
   1.184 -  typedef _Tp                        value_type;
   1.185 -  typedef _Distance                  difference_type;
   1.186 -# if defined (_STLP_MSVC50_COMPATIBILITY)
   1.187 -  typedef _Pointer                   pointer;
   1.188 -# else
   1.189 -  typedef _Tp*                       pointer;
   1.190 -# endif
   1.191 -  typedef _Reference                 reference;
   1.192 -
   1.193 -  reverse_iterator() {}
   1.194 -  reverse_iterator(const _Self& __x) : __current(__x.base()) {}
   1.195 -  explicit reverse_iterator(_RandomAccessIterator __x) : __current(__x) {}
   1.196 -  _Self& operator=(const _Self& __x) {__current = __x.base(); return *this; }  
   1.197 -       
   1.198 -  _RandomAccessIterator base() const { return __current; }
   1.199 -  _Reference operator*() const { return *(__current - (difference_type)1); }
   1.200 -
   1.201 -# if !(defined _STLP_NO_ARROW_OPERATOR)
   1.202 -  _STLP_DEFINE_ARROW_OPERATOR
   1.203 -# endif
   1.204 -
   1.205 -  _Self& operator++() {
   1.206 -    --__current;
   1.207 -    return *this;
   1.208 -  }
   1.209 -  _Self operator++(int) {
   1.210 -    _Self __tmp = *this;
   1.211 -    --__current;
   1.212 -    return __tmp;
   1.213 -  }
   1.214 -  _Self& operator--() {
   1.215 -    ++__current;
   1.216 -    return *this;
   1.217 -  }
   1.218 -  _Self operator--(int) {
   1.219 -    _Self __tmp = *this;
   1.220 -    ++__current;
   1.221 -    return __tmp;
   1.222 -  }
   1.223 -  _Self operator+(_Distance __n) const {
   1.224 -    return _Self(__current - __n);
   1.225 -  }
   1.226 -  _Self& operator+=(_Distance __n) {
   1.227 -    __current -= __n;
   1.228 -    return *this;
   1.229 -  }
   1.230 -  _Self operator-(_Distance __n) const {
   1.231 -    return _Self(__current + __n);
   1.232 -  }
   1.233 -  _Self& operator-=(_Distance __n) {
   1.234 -    __current += __n;
   1.235 -    return *this;
   1.236 -  }
   1.237 -  _Reference operator[](_Distance __n) const { return *(*this + __n); }
   1.238 -};
   1.239 -
   1.240 -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES
   1.241 -template <class _RandomAccessIterator, class _Tp, 
   1.242 -          class __Reference, class _Distance>
   1.243 -inline random_access_iterator_tag _STLP_CALL
   1.244 -iterator_category(const reverse_iterator<_RandomAccessIterator, _Tp, Reference__, _Distance>&)
   1.245 -{ return random_access_iterator_tag(); }
   1.246 -template <class _RandomAccessIterator, class _Tp,
   1.247 -  class __Reference, class _Distance>
   1.248 -inline _Tp*  _STLP_CALL value_type(const reverse_iterator<_RandomAccessIterator, _Tp, Reference__, _Distance>&)
   1.249 -{ return (_Tp*) 0; }
   1.250 -template <class _RandomAccessIterator, class _Tp,
   1.251 -          class __Reference, class _Distance>
   1.252 -inline _Distance*  _STLP_CALL
   1.253 -distance_type(const reverse_iterator<_RandomAccessIterator, _Tp, Reference__, _Distance>&)
   1.254 -{ return (_Distance*) 0; }
   1.255 -#endif
   1.256 -
   1.257 -template <class _RandomAccessIterator, class _Tp,
   1.258 -          class __Reference, class _Distance>
   1.259 -inline bool  _STLP_CALL
   1.260 -operator==(const reverse_iterator<_RandomAccessIterator, _Tp,
   1.261 -                                  Reference__, _Distance>& __x, 
   1.262 -           const reverse_iterator<_RandomAccessIterator, _Tp,
   1.263 -                                  Reference__, _Distance>& __y)
   1.264 -{
   1.265 -  return __x.base() == __y.base();
   1.266 -}
   1.267 -
   1.268 -template <class _RandomAccessIterator, class _Tp,
   1.269 -          class __Reference, class _Distance>
   1.270 -inline bool _STLP_CALL 
   1.271 -operator<(const reverse_iterator<_RandomAccessIterator, _Tp,
   1.272 -                                 Reference__, _Distance>& __x, 
   1.273 -          const reverse_iterator<_RandomAccessIterator, _Tp,
   1.274 -                                 Reference__, _Distance>& __y)
   1.275 -{
   1.276 -  return __y.base() < __x.base();
   1.277 -}
   1.278 -
   1.279 -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE
   1.280 -
   1.281 -template <class _RandomAccessIterator, class _Tp,
   1.282 -          class __Reference, class _Distance>
   1.283 -inline bool _STLP_CALL 
   1.284 -operator!=(const reverse_iterator<_RandomAccessIterator, _Tp,
   1.285 -                                  Reference__, _Distance>& __x, 
   1.286 -           const reverse_iterator<_RandomAccessIterator, _Tp,
   1.287 -                                  Reference__, _Distance>& __y) {
   1.288 -  return !(__x == __y);
   1.289 -}
   1.290 -
   1.291 -template <class _RandomAccessIterator, class _Tp,
   1.292 -          class __Reference, class _Distance>
   1.293 -inline bool _STLP_CALL 
   1.294 -operator>(const reverse_iterator<_RandomAccessIterator, _Tp,
   1.295 -                                 Reference__, _Distance>& __x, 
   1.296 -          const reverse_iterator<_RandomAccessIterator, _Tp,
   1.297 -                                 Reference__, _Distance>& __y) {
   1.298 -  return __y < __x;
   1.299 -}
   1.300 -
   1.301 -template <class _RandomAccessIterator, class _Tp,
   1.302 -          class __Reference, class _Distance>
   1.303 -inline bool _STLP_CALL 
   1.304 -operator<=(const reverse_iterator<_RandomAccessIterator, _Tp,
   1.305 -                                  Reference__, _Distance>& __x, 
   1.306 -           const reverse_iterator<_RandomAccessIterator, _Tp,
   1.307 -                                  Reference__, _Distance>& __y) {
   1.308 -  return !(__y < __x);
   1.309 -}
   1.310 -
   1.311 -template <class _RandomAccessIterator, class _Tp,
   1.312 -          class __Reference, class _Distance>
   1.313 -inline bool _STLP_CALL 
   1.314 -operator>=(const reverse_iterator<_RandomAccessIterator, _Tp,
   1.315 -                                  Reference__, _Distance>& __x, 
   1.316 -           const reverse_iterator<_RandomAccessIterator, _Tp,
   1.317 -                                  Reference__, _Distance>& __y) {
   1.318 -  return !(__x < __y);
   1.319 -}
   1.320 -
   1.321 -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */
   1.322 -
   1.323 -template <class _RandomAccessIterator, class _Tp,
   1.324 -          class __Reference, class _Distance>
   1.325 -inline _Distance  _STLP_CALL
   1.326 -operator-(const reverse_iterator<_RandomAccessIterator, _Tp,
   1.327 -                                 Reference__, _Distance>& __x, 
   1.328 -          const reverse_iterator<_RandomAccessIterator, _Tp,
   1.329 -                                 Reference__, _Distance>& __y)
   1.330 -{
   1.331 -  return __y.base() - __x.base();
   1.332 -}
   1.333 -
   1.334 -template <class _RandomAccessIterator, class _Tp,
   1.335 -          class __Reference, class _Distance>
   1.336 -inline reverse_iterator<_RandomAccessIterator, _Tp,
   1.337 -                        Reference__, _Distance>  _STLP_CALL
   1.338 -operator+(_Distance __n,
   1.339 -          const reverse_iterator<_RandomAccessIterator, _Tp,
   1.340 -                                 Reference__, _Distance>& __x)
   1.341 -{
   1.342 -  return reverse_iterator<_RandomAccessIterator, _Tp,
   1.343 -                          Reference__, _Distance>(__x.base() - __n);
   1.344 -}
   1.345 -
   1.346 -#endif /* ! defined ( _STLP_CLASS_PARTIAL_SPECIALIZATION ) */
   1.347 -
   1.348 -_STLP_END_NAMESPACE
   1.349 -
   1.350 -#endif /* _STLP_INTERNAL_ITERATOR_H */
   1.351 -
   1.352 -// Local Variables:
   1.353 -// mode:C++
   1.354 -// End: