1.1 --- a/epoc32/include/stdapis/stlport/stl/_iterator_base.h Tue Mar 16 16:12:26 2010 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,463 +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_BASE_H
1.34 -#define _STLP_INTERNAL_ITERATOR_BASE_H
1.35 -
1.36 -#ifndef _STLP_CSTDDEF
1.37 -# include <cstddef>
1.38 -#endif
1.39 -
1.40 -# if defined (_STLP_IMPORT_VENDOR_CSTD) && ! defined (_STLP_VENDOR_GLOBAL_CSTD)
1.41 -_STLP_BEGIN_NAMESPACE
1.42 -using namespace _STLP_VENDOR_CSTD;
1.43 -_STLP_END_NAMESPACE
1.44 -#endif /* _STLP_IMPORT_VENDOR_CSTD */
1.45 -
1.46 -#ifndef __TYPE_TRAITS_H
1.47 -# include <stl/type_traits.h>
1.48 -#endif
1.49 -
1.50 -_STLP_BEGIN_NAMESPACE
1.51 -
1.52 -struct input_iterator_tag {};
1.53 -struct output_iterator_tag {};
1.54 -struct forward_iterator_tag : public input_iterator_tag {};
1.55 -struct bidirectional_iterator_tag : public forward_iterator_tag {};
1.56 -struct random_access_iterator_tag : public bidirectional_iterator_tag {};
1.57 -
1.58 -
1.59 -template <class _Category, class _Tp, __DFL_TMPL_PARAM(_Distance,ptrdiff_t),
1.60 - __DFL_TMPL_PARAM(_Pointer,_Tp*), __DFL_TMPL_PARAM(_Reference,_Tp&) >
1.61 -struct iterator {
1.62 - typedef _Category iterator_category;
1.63 - typedef _Tp value_type;
1.64 - typedef _Distance difference_type;
1.65 - typedef _Pointer pointer;
1.66 - typedef _Reference reference;
1.67 -};
1.68 -_STLP_TEMPLATE_NULL
1.69 -struct iterator<output_iterator_tag, void, void, void, void> {
1.70 - typedef output_iterator_tag iterator_category;
1.71 -#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
1.72 - typedef void value_type;
1.73 - typedef void difference_type;
1.74 - typedef void pointer;
1.75 - typedef void reference;
1.76 -#endif
1.77 -};
1.78 -
1.79 -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES
1.80 -# define _STLP_ITERATOR_CATEGORY(_It, _Tp) iterator_category(_It)
1.81 -# define _STLP_DISTANCE_TYPE(_It, _Tp) distance_type(_It)
1.82 -# define _STLP_VALUE_TYPE(_It, _Tp) value_type(_It)
1.83 -# else
1.84 -# ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
1.85 -# define _STLP_VALUE_TYPE(_It, _Tp) (typename iterator_traits< _Tp >::value_type*)0
1.86 -# define _STLP_DISTANCE_TYPE(_It, _Tp) (typename iterator_traits< _Tp >::difference_type*)0
1.87 -# if defined (__BORLANDC__) || defined (__SUNPRO_CC) || ( defined (__MWERKS__) && (__MWERKS__ <= 0x2303)) || ( defined (__sgi) && defined (_COMPILER_VERSION)) || defined (__DMC__)
1.88 -# define _STLP_ITERATOR_CATEGORY(_It, _Tp) iterator_traits< _Tp >::iterator_category()
1.89 -# else
1.90 -# define _STLP_ITERATOR_CATEGORY(_It, _Tp) typename iterator_traits< _Tp >::iterator_category()
1.91 -# endif
1.92 -# else
1.93 -# define _STLP_ITERATOR_CATEGORY(_It, _Tp) __iterator_category(_It, _IsPtrType<_Tp>::_Ret())
1.94 -# define _STLP_DISTANCE_TYPE(_It, _Tp) (ptrdiff_t*)0
1.95 -# define _STLP_VALUE_TYPE(_It, _Tp) __value_type(_It, _IsPtrType<_Tp>::_Ret() )
1.96 -# endif
1.97 -# endif
1.98 -
1.99 -template <class _Iterator>
1.100 -struct iterator_traits {
1.101 - typedef typename _Iterator::iterator_category iterator_category;
1.102 - typedef typename _Iterator::value_type value_type;
1.103 - typedef typename _Iterator::difference_type difference_type;
1.104 - typedef typename _Iterator::pointer pointer;
1.105 - typedef typename _Iterator::reference reference;
1.106 -};
1.107 -
1.108 -
1.109 -# if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && ! defined (__SUNPRO_CC)
1.110 -# define _STLP_DIFFERENCE_TYPE(_Iterator) typename iterator_traits<_Iterator>::difference_type
1.111 -# else
1.112 -# define _STLP_DIFFERENCE_TYPE(_Iterator) ptrdiff_t
1.113 -# endif
1.114 -
1.115 -# ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
1.116 -
1.117 -// fbp : this order keeps gcc happy
1.118 -template <class _Tp>
1.119 -struct iterator_traits<const _Tp*> {
1.120 - typedef random_access_iterator_tag iterator_category;
1.121 - typedef _Tp value_type;
1.122 - typedef ptrdiff_t difference_type;
1.123 - typedef const _Tp* pointer;
1.124 - typedef const _Tp& reference;
1.125 -};
1.126 -
1.127 -template <class _Tp>
1.128 -struct iterator_traits<_Tp*> {
1.129 - typedef random_access_iterator_tag iterator_category;
1.130 - typedef _Tp value_type;
1.131 - typedef ptrdiff_t difference_type;
1.132 - typedef _Tp* pointer;
1.133 - typedef _Tp& reference;
1.134 -};
1.135 -
1.136 -# if defined (__BORLANDC__)
1.137 -template <class _Tp>
1.138 -struct iterator_traits<_Tp* const> {
1.139 - typedef random_access_iterator_tag iterator_category;
1.140 - typedef _Tp value_type;
1.141 - typedef ptrdiff_t difference_type;
1.142 - typedef const _Tp* pointer;
1.143 - typedef const _Tp& reference;
1.144 -};
1.145 -# endif
1.146 -
1.147 -# endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
1.148 -
1.149 -
1.150 -# if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) \
1.151 - || (defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) && ! defined (_STLP_NO_ARROW_OPERATOR))
1.152 -# define _STLP_POINTERS_SPECIALIZE( _TpP )
1.153 -# define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { return &(operator*()); }
1.154 -# else
1.155 -# include <stl/_ptrs_specialize.h>
1.156 -# endif
1.157 -
1.158 -# ifndef _STLP_USE_OLD_HP_ITERATOR_QUERIES
1.159 -// The overloaded functions iterator_category, distance_type, and
1.160 -// value_type are not part of the C++ standard. (They have been
1.161 -// replaced by struct iterator_traits.) They are included for
1.162 -// backward compatibility with the HP STL.
1.163 -// We introduce internal names for these functions.
1.164 -
1.165 -# ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
1.166 -
1.167 -template <class _Iter>
1.168 -inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) {
1.169 - typedef typename iterator_traits<_Iter>::iterator_category _Category;
1.170 - return _Category();
1.171 -}
1.172 -
1.173 -template <class _Iter>
1.174 -inline typename iterator_traits<_Iter>::difference_type* __distance_type(const _Iter&) {
1.175 - typedef typename iterator_traits<_Iter>::difference_type _diff_type;
1.176 - return __STATIC_CAST(_diff_type*,0);
1.177 -}
1.178 -
1.179 -template <class _Iter>
1.180 -inline typename iterator_traits<_Iter>::value_type* __value_type(const _Iter&) {
1.181 - typedef typename iterator_traits<_Iter>::value_type _value_type;
1.182 - return __STATIC_CAST(_value_type*,0);
1.183 -}
1.184 -
1.185 -# else
1.186 -
1.187 -template <class _Iter>
1.188 -inline random_access_iterator_tag
1.189 -__iterator_category(const _Iter&, const __true_type&) {
1.190 - return random_access_iterator_tag();
1.191 -}
1.192 -
1.193 -template <class _Iter>
1.194 -inline _STLP_TYPENAME_ON_RETURN_TYPE iterator_traits<_Iter>::iterator_category
1.195 -__iterator_category(const _Iter&, const __false_type&) {
1.196 - typedef typename iterator_traits<_Iter>::iterator_category _Category;
1.197 - return _Category();
1.198 -}
1.199 -
1.200 -
1.201 -template <class _Iter>
1.202 -inline ptrdiff_t* _STLP_CALL __distance_type(const _Iter&) { return (ptrdiff_t*)(0); }
1.203 -
1.204 -template <class _Iter>
1.205 -inline _STLP_TYPENAME_ON_RETURN_TYPE iterator_traits<_Iter>::value_type*
1.206 -__value_type(const _Iter&, const __false_type&) {
1.207 - typedef typename iterator_traits<_Iter>::value_type _value_type;
1.208 - return __STATIC_CAST(_value_type*,0);
1.209 -}
1.210 -
1.211 -template <class _Tp>
1.212 -inline _Tp*
1.213 -__value_type(const _Tp*, const __true_type&) {
1.214 - return __STATIC_CAST(_Tp*, 0);
1.215 -}
1.216 -
1.217 -# endif
1.218 -
1.219 -#else /* old queries */
1.220 -template <class _Category, class _Tp, class _Distance, class _Pointer, class _Reference>
1.221 -inline _Category _STLP_CALL iterator_category(const iterator<_Category,_Tp,_Distance,_Pointer,_Reference>&) { return _Category(); }
1.222 -template <class _Category, class _Tp, class _Distance, class _Pointer, class _Reference>
1.223 -inline _Tp* _STLP_CALL value_type(const iterator<_Category,_Tp,_Distance,_Pointer,_Reference>&) { return (_Tp*)(0); }
1.224 -template <class _Category, class _Tp, class _Distance, class _Pointer, class _Reference>
1.225 -inline _Distance* _STLP_CALL distance_type(const iterator<_Category,_Tp,_Distance,_Pointer,_Reference>&) { return (_Distance*)(0); }
1.226 -template <class _Tp>
1.227 -inline random_access_iterator_tag _STLP_CALL iterator_category(const _Tp*) { return random_access_iterator_tag(); }
1.228 -template <class _Tp>
1.229 -inline _Tp* _STLP_CALL value_type(const _Tp*) { return (_Tp*)(0); }
1.230 -template <class _Tp>
1.231 -inline ptrdiff_t* _STLP_CALL distance_type(const _Tp*) { return (ptrdiff_t*)(0); }
1.232 -#endif /* _STLP_USE_OLD_HP_ITERATOR_QUERIES */
1.233 -
1.234 -# if ! defined (_STLP_NO_ANACHRONISMS)
1.235 -// The base classes input_iterator, output_iterator, forward_iterator,
1.236 -// bidirectional_iterator, and random_access_iterator are not part of
1.237 -// the C++ standard. (They have been replaced by struct iterator.)
1.238 -// They are included for backward compatibility with the HP STL.
1.239 -template <class _Tp, class _Distance> struct input_iterator :
1.240 - public iterator <input_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {};
1.241 -struct output_iterator : public iterator <output_iterator_tag, void, void, void, void> {};
1.242 -template <class _Tp, class _Distance> struct forward_iterator :
1.243 - public iterator<forward_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {};
1.244 -template <class _Tp, class _Distance> struct bidirectional_iterator :
1.245 - public iterator<bidirectional_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {};
1.246 -template <class _Tp, class _Distance> struct random_access_iterator :
1.247 - public iterator<random_access_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {};
1.248 -
1.249 -# if defined (_STLP_BASE_MATCH_BUG) && defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
1.250 -template <class _Tp, class _Distance>
1.251 -inline input_iterator_tag _STLP_CALL
1.252 -iterator_category(const input_iterator<_Tp, _Distance>&) { return input_iterator_tag(); }
1.253 -inline output_iterator_tag _STLP_CALL
1.254 -iterator_category(const output_iterator&) { return output_iterator_tag(); }
1.255 -template <class _Tp, class _Distance>
1.256 -inline forward_iterator_tag _STLP_CALL
1.257 -iterator_category(const forward_iterator<_Tp, _Distance>&) { return forward_iterator_tag(); }
1.258 -template <class _Tp, class _Distance>
1.259 -inline bidirectional_iterator_tag _STLP_CALL
1.260 -iterator_category(const bidirectional_iterator<_Tp, _Distance>&) { return bidirectional_iterator_tag(); }
1.261 -template <class _Tp, class _Distance>
1.262 -inline random_access_iterator_tag _STLP_CALL
1.263 -iterator_category(const random_access_iterator<_Tp, _Distance>&) { return random_access_iterator_tag(); }
1.264 -template <class _Tp, class _Distance>
1.265 -inline _Tp* _STLP_CALL value_type(const input_iterator<_Tp, _Distance>&) { return (_Tp*)(0); }
1.266 -template <class _Tp, class _Distance>
1.267 -inline _Tp* _STLP_CALL value_type(const forward_iterator<_Tp, _Distance>&) { return (_Tp*)(0); }
1.268 -template <class _Tp, class _Distance>
1.269 -inline _Tp* _STLP_CALL value_type(const bidirectional_iterator<_Tp, _Distance>&) { return (_Tp*)(0); }
1.270 -template <class _Tp, class _Distance>
1.271 -inline _Tp* _STLP_CALL value_type(const random_access_iterator<_Tp, _Distance>&) { return (_Tp*)(0); }
1.272 -template <class _Tp, class _Distance>
1.273 -inline _Distance* _STLP_CALL distance_type(const input_iterator<_Tp, _Distance>&) { return (_Distance*)(0); }
1.274 -template <class _Tp, class _Distance>
1.275 -inline _Distance* _STLP_CALL distance_type(const forward_iterator<_Tp, _Distance>&) { return (_Distance*)(0); }
1.276 -template <class _Tp, class _Distance>
1.277 -inline _Distance* _STLP_CALL distance_type(const bidirectional_iterator<_Tp, _Distance>&) { return (_Distance*)(0);}
1.278 -template <class _Tp, class _Distance>
1.279 -inline _Distance* _STLP_CALL distance_type(const random_access_iterator<_Tp, _Distance>&) { return (_Distance*)(0); }
1.280 -# endif /* BASE_MATCH */
1.281 -
1.282 -#endif /* _STLP_NO_ANACHRONISMS */
1.283 -
1.284 -template <class _InputIterator, class _Distance>
1.285 -inline void _STLP_CALL __distance(const _InputIterator& __first, const _InputIterator& __last,
1.286 - _Distance& __n, const input_iterator_tag &) {
1.287 - _InputIterator __it(__first);
1.288 - while (__it != __last) { ++__it; ++__n; }
1.289 -}
1.290 -
1.291 -# if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
1.292 -template <class _ForwardIterator, class _Distance>
1.293 -inline void _STLP_CALL __distance(const _ForwardIterator& __first, const _ForwardIterator& __last,
1.294 - _Distance& __n, const forward_iterator_tag &) {
1.295 - _ForwardIterator __it(__first);
1.296 - while (__it != __last) { ++__first; ++__n; }
1.297 -}
1.298 -
1.299 -template <class _BidirectionalIterator, class _Distance>
1.300 -_STLP_INLINE_LOOP void _STLP_CALL __distance(const _BidirectionalIterator& __first,
1.301 - const _BidirectionalIterator& __last,
1.302 - _Distance& __n, const bidirectional_iterator_tag &) {
1.303 - _BidirectionalIterator __it(__first);
1.304 - while (__it != __last) { ++__it; ++__n; }
1.305 -}
1.306 -# endif
1.307 -
1.308 -template <class _RandomAccessIterator, class _Distance>
1.309 -inline void _STLP_CALL __distance(const _RandomAccessIterator& __first,
1.310 - const _RandomAccessIterator& __last,
1.311 - _Distance& __n, const random_access_iterator_tag &) {
1.312 - __n += __last - __first;
1.313 -}
1.314 -
1.315 -#ifndef _STLP_NO_ANACHRONISMS
1.316 -template <class _InputIterator, class _Distance>
1.317 -inline void _STLP_CALL distance(const _InputIterator& __first,
1.318 - const _InputIterator& __last, _Distance& __n) {
1.319 - __distance(__first, __last, __n, _STLP_ITERATOR_CATEGORY(__first, _InputIterator));
1.320 -}
1.321 -#endif
1.322 -
1.323 -template <class _InputIterator>
1.324 -inline _STLP_DIFFERENCE_TYPE(_InputIterator) _STLP_CALL
1.325 -__distance(const _InputIterator& __first, const _InputIterator& __last, const input_iterator_tag &) {
1.326 - _STLP_DIFFERENCE_TYPE(_InputIterator) __n = 0;
1.327 - _InputIterator __it(__first);
1.328 - while (__it != __last) {
1.329 - ++__it; ++__n;
1.330 - }
1.331 - return __n;
1.332 -}
1.333 -
1.334 -# if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
1.335 -template <class _ForwardIterator>
1.336 -inline _STLP_DIFFERENCE_TYPE(_ForwardIterator) _STLP_CALL
1.337 -__distance(const _ForwardIterator& __first, const _ForwardIterator& __last,
1.338 - const forward_iterator_tag &)
1.339 -{
1.340 - _STLP_DIFFERENCE_TYPE(_ForwardIterator) __n = 0;
1.341 - _ForwardIterator __it(__first);
1.342 - while (__it != __last) {
1.343 - ++__it; ++__n;
1.344 - }
1.345 - return __n;
1.346 -}
1.347 -
1.348 -template <class _BidirectionalIterator>
1.349 -_STLP_INLINE_LOOP _STLP_DIFFERENCE_TYPE(_BidirectionalIterator) _STLP_CALL
1.350 -__distance(const _BidirectionalIterator& __first,
1.351 - const _BidirectionalIterator& __last,
1.352 - const bidirectional_iterator_tag &) {
1.353 - _STLP_DIFFERENCE_TYPE(_BidirectionalIterator) __n = 0;
1.354 - _BidirectionalIterator __it(__first);
1.355 - while (__it != __last) {
1.356 - ++__it; ++__n;
1.357 - }
1.358 - return __n;
1.359 -}
1.360 -# endif
1.361 -
1.362 -template <class _RandomAccessIterator>
1.363 -inline _STLP_DIFFERENCE_TYPE(_RandomAccessIterator) _STLP_CALL
1.364 -__distance(const _RandomAccessIterator& __first, const _RandomAccessIterator& __last,
1.365 - const random_access_iterator_tag &) {
1.366 - return __last - __first;
1.367 -}
1.368 -
1.369 -template <class _InputIterator>
1.370 -inline _STLP_DIFFERENCE_TYPE(_InputIterator) _STLP_CALL
1.371 -distance(const _InputIterator& __first, const _InputIterator& __last) {
1.372 - return __distance(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator));
1.373 -}
1.374 -
1.375 -
1.376 -// fbp: those are being used for iterator/const_iterator definitions everywhere
1.377 -template <class _Tp>
1.378 -struct _Nonconst_traits;
1.379 -
1.380 -template <class _Tp>
1.381 -struct _Const_traits {
1.382 - typedef _Tp value_type;
1.383 - typedef const _Tp& reference;
1.384 - typedef const _Tp* pointer;
1.385 - typedef _Nonconst_traits<_Tp> _Non_const_traits;
1.386 -};
1.387 -
1.388 -template <class _Tp>
1.389 -struct _Nonconst_traits {
1.390 - typedef _Tp value_type;
1.391 - typedef _Tp& reference;
1.392 - typedef _Tp* pointer;
1.393 - typedef _Nonconst_traits<_Tp> _Non_const_traits;
1.394 -};
1.395 -
1.396 -# if defined (_STLP_BASE_TYPEDEF_BUG)
1.397 -// this workaround is needed for SunPro 4.0.1
1.398 -template <class _Traits>
1.399 -struct __cnst_traits_aux : private _Traits
1.400 -{
1.401 - typedef typename _Traits::value_type value_type;
1.402 -};
1.403 -# define __TRAITS_VALUE_TYPE(_Traits) __cnst_traits_aux<_Traits>::value_type
1.404 -# else
1.405 -# define __TRAITS_VALUE_TYPE(_Traits) _Traits::value_type
1.406 -# endif
1.407 -
1.408 -# if defined (_STLP_MSVC)
1.409 -// MSVC specific
1.410 -template <class _InputIterator, class _Dist>
1.411 -inline void _STLP_CALL _Distance(_InputIterator __first,
1.412 - _InputIterator __last, _Dist& __n) {
1.413 - __distance(__first, __last, __n, _STLP_ITERATOR_CATEGORY(__first, _InputIterator));
1.414 -}
1.415 -# endif
1.416 -
1.417 -template <class _InputIter, class _Distance>
1.418 -_STLP_INLINE_LOOP void _STLP_CALL __advance(_InputIter& __i, _Distance __n, const input_iterator_tag &) {
1.419 - while (__n--) ++__i;
1.420 -}
1.421 -
1.422 -// fbp : added output iterator tag variant
1.423 -template <class _InputIter, class _Distance>
1.424 -_STLP_INLINE_LOOP void _STLP_CALL __advance(_InputIter& __i, _Distance __n, const output_iterator_tag &) {
1.425 - while (__n--) ++__i;
1.426 -}
1.427 -
1.428 -# if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
1.429 -template <class _ForwardIterator, class _Distance>
1.430 -_STLP_INLINE_LOOP void _STLP_CALL __advance(_ForwardIterator& i, _Distance n, const forward_iterator_tag &) {
1.431 - while (n--) ++i;
1.432 -}
1.433 -# endif
1.434 -
1.435 -template <class _BidirectionalIterator, class _Distance>
1.436 -_STLP_INLINE_LOOP void _STLP_CALL __advance(_BidirectionalIterator& __i, _Distance __n,
1.437 - const bidirectional_iterator_tag &) {
1.438 - if (__n > 0)
1.439 - while (__n--) ++__i;
1.440 - else
1.441 - while (__n++) --__i;
1.442 -}
1.443 -
1.444 -template <class _RandomAccessIterator, class _Distance>
1.445 -inline void _STLP_CALL __advance(_RandomAccessIterator& __i, _Distance __n,
1.446 - const random_access_iterator_tag &) {
1.447 - __i += __n;
1.448 -}
1.449 -
1.450 -template <class _InputIterator, class _Distance>
1.451 -inline void _STLP_CALL advance(_InputIterator& __i, _Distance __n) {
1.452 - __advance(__i, __n, _STLP_ITERATOR_CATEGORY(__i, _InputIterator));
1.453 -}
1.454 -
1.455 -_STLP_END_NAMESPACE
1.456 -
1.457 -# if defined (_STLP_DEBUG) && ! defined (_STLP_DEBUG_H)
1.458 -# include <stl/debug/_debug.h>
1.459 -# endif
1.460 -
1.461 -#endif /* _STLP_INTERNAL_ITERATOR_BASE_H */
1.462 -
1.463 -
1.464 -// Local Variables:
1.465 -// mode:C++
1.466 -// End: