17 #ifndef VCSN_MISC_SELF_ITERATOR_HXX
18 # define VCSN_MISC_SELF_ITERATOR_HXX
27 template <
template <
class>
class C,
class T>
29 SelfIterator<C, T>::SelfIterator (
const C<T>& c)
34 template <
template <
class>
class C,
class T>
36 SelfIterator<C, T>::SelfIterator ()
41 template <
template <
class>
class C,
class T>
43 SelfIterator<C, T>::SelfIterator (
const SelfIterator& s)
48 template <
template <
class>
class C,
class T>
56 template <
template <
class>
class C,
class T>
58 const SelfIterator<C, T>&
59 SelfIterator<C, T>::operator++ ()
65 template <
template <
class>
class C,
class T>
68 SelfIterator<C, T>::operator++ (
int)
70 SelfIterator<C, T> res (*
this);
75 template <
template <
class>
class C,
class T>
84 return o.pos_ != o.c_->end ();
86 return pos_ != c_->end ();
87 return o.c_ != c_ || o.pos_ != pos_;
90 template <
template <
class>
class C,
class T>
93 SelfIterator<C, T>::operator== (
const SelfIterator<C, T>& o)
const
96 return o.c_ == 0 || o.pos_ == o.c_->end ();
98 return pos_ == c_->end ();
99 return o.c_ == c_ && o.pos_ == pos_;
105 #endif // ! VCSN_MISC_SELF_ITERATOR_HXX