27 #ifndef MLN_CORE_INTERNAL_SITE_SET_ITERATOR_BASE_HH
28 # define MLN_CORE_INTERNAL_SITE_SET_ITERATOR_BASE_HH
35 # include <mln/core/internal/site_iterator_base.hh>
52 template <
typename S,
typename E>
53 class site_set_iterator_base :
public site_iterator_base<S, E>
64 const mln_psite(S)& p_hook_()
const;
67 void change_target(
const S& s);
71 void change_target_(
const S& s);
79 site_set_iterator_base();
83 #ifndef MLN_INCLUDE_ONLY
85 template <
typename S,
typename E>
87 site_set_iterator_base<S, E>::site_set_iterator_base()
91 template <
typename S,
typename E>
94 site_set_iterator_base<S, E>::site_set()
const
96 mln_precondition(this->s_ != 0);
100 template <
typename S,
typename E>
103 site_set_iterator_base<S, E>::change_target(
const S& s)
108 if_possible::change_target(p_, s);
110 exact(
this)->change_target_(s);
115 template <
typename S,
typename E>
118 site_set_iterator_base<S, E>::change_target_(
const S& s)
124 template <
typename S,
typename E>
127 site_set_iterator_base<S, E>::p_hook_()
const
132 #endif // ! MLN_INCLUDE_ONLY
139 #endif // ! MLN_CORE_INTERNAL_SITE_SET_ITERATOR_BASE_HH