26 #ifndef MLN_CORE_SITE_SET_P_TRANSFORMED_PITER_HH
27 # define MLN_CORE_SITE_SET_P_TRANSFORMED_PITER_HH
33 # include <mln/core/internal/site_set_iterator_base.hh>
34 # include <mln/core/site_set/p_transformed.hh>
35 # include <mln/convert/to.hh>
49 template <
typename Pi,
typename S,
typename F>
51 :
public internal::site_set_iterator_base< p_transformed<S,F>,
52 p_transformed_piter<Pi,S,F> >
61 bool is_valid_()
const;
77 typedef internal::site_set_iterator_base<p_transformed<S,F>,
self_> super_;
89 # ifndef MLN_INCLUDE_ONLY
91 template <
typename Pi,
typename S,
typename F>
97 template <
typename Pi,
typename S,
typename F>
101 this->change_target(s);
104 template <
typename Pi,
typename S,
typename F>
109 return pi_.is_valid();
112 template <
typename Pi,
typename S,
typename F>
115 p_transformed_piter<Pi,S,F>::invalidate_()
120 template <
typename Pi,
typename S,
typename F>
123 p_transformed_piter<Pi,S,F>::start_()
127 p_ = s_->function()(convert::to<mln_argument(F)>(pi_));
130 template <
typename Pi,
typename S,
typename F>
133 p_transformed_piter<Pi,S,F>::next_()
137 p_ = s_->function()(convert::to<mln_argument(F)>(pi_));
140 template <
typename Pi,
typename S,
typename F>
153 # endif // ! MLN_INCLUDE_ONLY
158 #endif // ! MLN_CORE_SITE_SET_P_TRANSFORMED_PITER_HH