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 wpl
00028 {
00029
00030 namespace tool
00031 {
00032
00033 template <class B>
00034 bool
00035 iterator<B>::operator == (const exact_type& rhs) const
00036 {
00037 return this->exact().equal(rhs.exact());
00038 }
00039
00040 template <class B>
00041 bool
00042 iterator<B>::operator != (const exact_type& rhs) const
00043 {
00044 return not (*this == rhs);
00045 }
00046
00047 template <class B>
00048 const typename iterator<B>::exact_type&
00049 iterator<B>::operator ++ ()
00050 {
00051 this->exact().increment();
00052 return this->exact();
00053 }
00054
00055 template <class B>
00056 typename iterator<B>::exact_type
00057 iterator<B>::operator ++ (int)
00058 {
00059 exact_type r = this->exact();
00060 ++(*this);
00061 return r;
00062 }
00063
00064 template <class B>
00065 const typename iterator<B>::value_type&
00066 iterator<B>::operator * () const
00067 {
00068 return this->exact().get();
00069 }
00070
00071 template <class B>
00072 const typename iterator<B>::value_type*
00073 iterator<B>::operator -> () const
00074 {
00075 return this->exact().get_ptr();
00076 }
00077
00078 template <class B>
00079 iterator<B>::~iterator()
00080 {
00081 }
00082
00083 }
00084
00085 }
00086
00087 #endif // ! TOOL_ITERATOR_HXX_