00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef TOOL_ITERATOR_HXX_
00023 # define TOOL_ITERATOR_HXX_
00024
00025 # include "iterator.hh"
00026
00027 namespace tool
00028 {
00029
00030 template <class B>
00031 bool
00032 iterator<B>::operator == (const exact_type& rhs) const
00033 {
00034 return this->exact().equal(rhs.exact());
00035 }
00036
00037 template <class B>
00038 bool
00039 iterator<B>::operator != (const exact_type& rhs) const
00040 {
00041 return not (*this == rhs);
00042 }
00043
00044 template <class B>
00045 const typename iterator<B>::exact_type&
00046 iterator<B>::operator ++ ()
00047 {
00048 this->exact().increment();
00049 return this->exact();
00050 }
00051
00052 template <class B>
00053 typename iterator<B>::exact_type
00054 iterator<B>::operator ++ (int)
00055 {
00056 exact_type r = this->exact();
00057 ++(*this);
00058 return r;
00059 }
00060
00061 template <class B>
00062 const typename iterator<B>::value_type&
00063 iterator<B>::operator * () const
00064 {
00065 return this->exact().get();
00066 }
00067
00068 template <class B>
00069 const typename iterator<B>::value_type*
00070 iterator<B>::operator -> () const
00071 {
00072 return this->exact().get_ptr();
00073 }
00074
00075 template <class B>
00076 iterator<B>::~iterator()
00077 {
00078 }
00079
00080 }
00081
00082 #endif // ! TOOL_ITERATOR_HXX_