/home/ntakagi/work/STLport-5.1.5/stlport/stl/_iterator_base.h File Reference

#include <stl/_cstddef.h>
#include <stl/type_traits.h>
#include <stl/_ptrs_specialize.h>

Go to the source code of this file.

Classes

struct  input_iterator_tag
struct  output_iterator_tag
struct  forward_iterator_tag
struct  bidirectional_iterator_tag
struct  random_access_iterator_tag
struct  iterator< _Category, _Tp,,, >
struct  iterator< output_iterator_tag, void, void, void, void >
struct  iterator_traits< _Iterator >
struct  input_iterator< _Tp, _Distance >
struct  output_iterator
struct  forward_iterator< _Tp, _Distance >
struct  bidirectional_iterator< _Tp, _Distance >
struct  random_access_iterator< _Tp, _Distance >
struct  _Const_traits< _Tp >
struct  _Nonconst_traits< _Tp >
struct  _Const_Const_traits< _Tp >
struct  _Nonconst_Const_traits< _Tp >

Defines

#define _STLP_ITERATOR_CATEGORY(_It, _Tp)   __iterator_category(_It, _IsPtrType<_Tp>::_Ret())
#define _STLP_DISTANCE_TYPE(_It, _Tp)   (ptrdiff_t*)0
#define _STLP_VALUE_TYPE(_It, _Tp)   __value_type(_It, _IsPtrType<_Tp>::_Ret() )
#define _STLP_IS_REF_TYPE_REAL_REF(_It, _Tp)   __false_type()
#define _STLP_DIFFERENCE_TYPE(_Iterator)   ptrdiff_t
#define _STLP_CREATE_ITERATOR_TRAITS_BASE(Motif, Traits)
#define _STLP_CREATE_ITERATOR_TRAITS(Motif, Traits)
#define _STLP_CREATE_HASH_ITERATOR_TRAITS(Motif, Traits)

Functions

template<class _Iter>
random_access_iterator_tag __iterator_category (const _Iter &, const __true_type &)
template<class _Iter>
_STLP_TYPENAME_ON_RETURN_TYPE
iterator_traits< _Iter
>::iterator_category 
__iterator_category (const _Iter &, const __false_type &)
template<class _Iter>
ptrdiff_t *_STLP_CALL __distance_type (const _Iter &)
template<class _Iter>
_STLP_TYPENAME_ON_RETURN_TYPE
iterator_traits< _Iter
>::value_type
__value_type (const _Iter &, const __false_type &)
template<class _Tp>
_Tp * __value_type (const _Tp *, const __true_type &)
template<class _InputIterator, class _Distance>
void _STLP_CALL __distance (const _InputIterator &__first, const _InputIterator &__last, _Distance &__n, const input_iterator_tag &)
template<class _RandomAccessIterator, class _Distance>
void _STLP_CALL __distance (const _RandomAccessIterator &__first, const _RandomAccessIterator &__last, _Distance &__n, const random_access_iterator_tag &)
template<class _InputIterator, class _Distance>
void _STLP_CALL distance (const _InputIterator &__first, const _InputIterator &__last, _Distance &__n)
template<class _InputIterator>
 _STLP_DIFFERENCE_TYPE (_InputIterator) _STLP_CALL __distance(const _InputIterator &__first
template<class _InputIter, class _Distance>
_STLP_INLINE_LOOP void _STLP_CALL __advance (_InputIter &__i, _Distance __n, const input_iterator_tag &)
template<class _InputIter, class _Distance>
_STLP_INLINE_LOOP void _STLP_CALL __advance (_InputIter &__i, _Distance __n, const output_iterator_tag &)
template<class _BidirectionalIterator, class _Distance>
_STLP_INLINE_LOOP void _STLP_CALL __advance (_BidirectionalIterator &__i, _Distance __n, const bidirectional_iterator_tag &)
template<class _RandomAccessIterator, class _Distance>
void _STLP_CALL __advance (_RandomAccessIterator &__i, _Distance __n, const random_access_iterator_tag &)
template<class _InputIterator, class _Distance>
void _STLP_CALL advance (_InputIterator &__i, _Distance __n)

Variables

const _InputIterator & __last


Define Documentation

#define _STLP_CREATE_HASH_ITERATOR_TRAITS ( Motif,
Traits   ) 

Value:

_STLP_MOVE_TO_PRIV_NAMESPACE                                    \
_STLP_CREATE_ITERATOR_TRAITS_BASE(NonLocal##Motif, Traits)      \
_STLP_CREATE_ITERATOR_TRAITS_BASE(Local##Motif, Traits)         \
template <class _Tp>                                            \
struct _##Motif {                                               \
  typedef _ConstNonLocal##Motif<_Tp> _ConstTraits;              \
  typedef _NonLocal##Motif<_Tp> _NonConstTraits;                \
  typedef _ConstLocal##Motif<_Tp> _ConstLocalTraits;            \
  typedef _Local##Motif<_Tp> _NonConstLocalTraits;              \
};                                                              \
_STLP_MOVE_TO_STD_NAMESPACE

Definition at line 452 of file _iterator_base.h.

#define _STLP_CREATE_ITERATOR_TRAITS ( Motif,
Traits   ) 

#define _STLP_CREATE_ITERATOR_TRAITS_BASE ( Motif,
Traits   ) 

Value:

template <class _Tp>                                            \
struct _##Motif;                                                \
template <class _Tp>                                            \
struct _Const##Motif : public _STLP_STD::_Const_##Traits<_Tp> {  \
  typedef _Const##Motif<_Tp> _ConstTraits;                      \
  typedef _##Motif<_Tp> _NonConstTraits;                        \
};                                                              \
template <class _Tp>                                            \
struct _##Motif : public _STLP_STD::_Nonconst_##Traits<_Tp> {    \
  typedef _Const##Motif<_Tp> _ConstTraits;                      \
  typedef _##Motif<_Tp> _NonConstTraits;                        \
};

Definition at line 433 of file _iterator_base.h.

#define _STLP_DIFFERENCE_TYPE ( _Iterator   )     ptrdiff_t

Definition at line 116 of file _iterator_base.h.

Referenced by __find(), and __find_if().

#define _STLP_IS_REF_TYPE_REAL_REF ( _It,
_Tp   )     __false_type()

Definition at line 99 of file _iterator_base.h.

Referenced by iter_swap().


Function Documentation

template<class _RandomAccessIterator, class _Distance>
void _STLP_CALL __advance ( _RandomAccessIterator &  __i,
_Distance  __n,
const random_access_iterator_tag  
) [inline]

Definition at line 520 of file _iterator_base.h.

template<class _BidirectionalIterator, class _Distance>
_STLP_INLINE_LOOP void _STLP_CALL __advance ( _BidirectionalIterator &  __i,
_Distance  __n,
const bidirectional_iterator_tag  
)

Definition at line 510 of file _iterator_base.h.

template<class _InputIter, class _Distance>
_STLP_INLINE_LOOP void _STLP_CALL __advance ( _InputIter &  __i,
_Distance  __n,
const output_iterator_tag  
)

Definition at line 496 of file _iterator_base.h.

template<class _InputIter, class _Distance>
_STLP_INLINE_LOOP void _STLP_CALL __advance ( _InputIter &  __i,
_Distance  __n,
const input_iterator_tag  
)

Definition at line 489 of file _iterator_base.h.

Referenced by advance().

template<class _RandomAccessIterator, class _Distance>
void _STLP_CALL __distance ( const _RandomAccessIterator &  __first,
const _RandomAccessIterator &  __last,
_Distance &  __n,
const random_access_iterator_tag  
) [inline]

Definition at line 314 of file _iterator_base.h.

template<class _InputIterator, class _Distance>
void _STLP_CALL __distance ( const _InputIterator &  __first,
const _InputIterator &  __last,
_Distance &  __n,
const input_iterator_tag  
) [inline]

Definition at line 289 of file _iterator_base.h.

Referenced by distance().

template<class _Iter>
ptrdiff_t* _STLP_CALL __distance_type ( const _Iter &   )  [inline]

Definition at line 206 of file _iterator_base.h.

References __STATIC_CAST.

template<class _Iter>
_STLP_TYPENAME_ON_RETURN_TYPE iterator_traits<_Iter>::iterator_category __iterator_category ( const _Iter &  ,
const __false_type  
) [inline]

Definition at line 199 of file _iterator_base.h.

template<class _Iter>
random_access_iterator_tag __iterator_category ( const _Iter &  ,
const __true_type  
) [inline]

Definition at line 193 of file _iterator_base.h.

References random_access_iterator_tag.

template<class _Tp>
_Tp* __value_type ( const _Tp *  ,
const __true_type  
) [inline]

Definition at line 217 of file _iterator_base.h.

References __STATIC_CAST.

template<class _Iter>
_STLP_TYPENAME_ON_RETURN_TYPE iterator_traits<_Iter>::value_type* __value_type ( const _Iter &  ,
const __false_type  
) [inline]

Definition at line 210 of file _iterator_base.h.

References __STATIC_CAST.

template<class _InputIterator>
_STLP_DIFFERENCE_TYPE ( _InputIterator   )  const [inline]


Variable Documentation

const _InputIterator& __last

Definition at line 330 of file _iterator_base.h.



Generated on Mon Mar 10 15:32:49 2008 by  doxygen 1.5.1