27 # define MLN_ACCU_V_HH
34 # include <mln/core/concept/meta_accumulator.hh>
35 # include <mln/accu/internal/base.hh>
36 # include <mln/metal/is_a.hh>
37 # include <mln/util/pix.hh>
50 struct val :
public mln::accu::internal::base< const mln_result(A)& , val<A> >
52 typedef mln_argument(A) argument;
60 void take_as_init_(
const argument& t);
61 void take(
const argument& t);
86 template <
typename mA>
92 typedef mln_accu_with(mA, mln_value(V)) A;
99 # ifndef MLN_INCLUDE_ONLY
101 template <
typename A>
108 template <
typename A>
110 val<A>::val(
const A& a)
116 template <
typename A>
124 template <
typename A>
132 template <
typename A>
135 val<A>::take(
const argument& t)
140 template <
typename A>
143 val<A>::take(
const val<A>& other)
148 template <
typename A>
149 template <
typename I>
152 val<A>::take_as_init_(
const util::pix<I>& pix)
154 a_.take_as_init_(pix.v());
157 template <
typename A>
158 template <
typename I>
161 val<A>::take(
const util::pix<I>& pix)
166 template <
typename A>
171 return a_.to_result();
174 template <
typename A>
179 return a_.is_valid();
183 # endif // ! MLN_INCLUDE_ONLY
190 #endif // ! MLN_ACCU_V_HH