27 #ifndef MLN_CORE_INTERNAL_PITER_ADAPTOR_HH
28 # define MLN_CORE_INTERNAL_PITER_ADAPTOR_HH
39 # include <mln/core/internal/site_iterator_base.hh>
54 template <
typename Pi,
typename S,
typename E>
79 const mln_psite(S)&
p_hook_()
const;
96 # ifndef MLN_INCLUDE_ONLY
98 template <
typename Pi,
typename S,
typename E>
104 template <
typename Pi,
typename S,
typename E>
112 template <
typename Pi,
typename S,
typename E>
115 piter_adaptor_<Pi,S,E>::is_valid_()
const
117 return pi_.is_valid();
120 template <
typename Pi,
typename S,
typename E>
123 piter_adaptor_<Pi,S,E>::invalidate_()
128 template <
typename Pi,
typename S,
typename E>
131 piter_adaptor_<Pi,S,E>::start_()
136 template <
typename Pi,
typename S,
typename E>
139 piter_adaptor_<Pi,S,E>::next_()
144 template <
typename Pi,
typename S,
typename E>
147 piter_adaptor_<Pi,S,E>::p_hook_()
const
149 return pi_.p_hook_();
152 template <
typename Pi,
typename S,
typename E>
155 piter_adaptor_<Pi,S,E>::change_target(
const S& s)
160 exact(
this)->pi_change_target_(s);
165 template <
typename Pi,
typename S,
typename E>
168 piter_adaptor_<Pi,S,E>::pi_change_target_(
const S& s)
170 this->pi_.change_target(s);
173 # endif // ! MLN_INCLUDE_ONLY
180 #endif // ! MLN_CORE_INTERNAL_PITER_ADAPTOR_HH