27 #ifndef MLN_TOPO_INTERNAL_COMPLEX_SET_ITERATOR_BASE_HH
28 # define MLN_TOPO_INTERNAL_COMPLEX_SET_ITERATOR_BASE_HH
35 # include <mln/topo/internal/complex_iterator_base.hh>
48 template <
typename F,
typename E>
49 class complex_iterator_base;
56 template <
typename F,
typename E>
57 class complex_set_iterator_base :
public complex_iterator_base<F, E>
59 typedef complex_set_iterator_base<F, E> self_;
66 typedef typename F::complex_type complex_type;
70 complex_set_iterator_base();
71 complex_set_iterator_base(
const complex_type& c);
77 void set_cplx(
const complex_type& c);
80 bool is_valid()
const;
88 # ifndef MLN_INCLUDE_ONLY
90 template <
typename F,
typename E>
92 complex_set_iterator_base<F, E>::complex_set_iterator_base()
97 template <
typename F,
typename E>
99 complex_set_iterator_base<F, E>::complex_set_iterator_base(
const complex_type& c)
101 this->f_.set_cplx(c);
106 template <
typename F,
typename E>
109 complex_set_iterator_base<F, E>::set_cplx(
const complex_type& c)
111 this->f_.set_cplx(c);
116 template <
typename F,
typename E>
119 complex_set_iterator_base<F, E>::is_valid()
const
121 return this->f_.is_valid();
124 template <
typename F,
typename E>
127 complex_set_iterator_base<F, E>::invalidate()
129 this->f_.invalidate();
132 # endif // ! MLN_INCLUDE_ONLY
140 #endif // ! MLN_TOPO_INTERNAL_COMPLEX_SET_ITERATOR_BASE_HH