26 #ifndef MLN_ACCU_AND_NOT_HH
27 # define MLN_ACCU_AND_NOT_HH
33 # include <mln/core/concept/meta_accumulator.hh>
35 # include <mln/logical/and_not.hh>
37 # include <mln/accu/internal/base.hh>
38 # include <mln/metal/is_a.hh>
39 # include <mln/metal/unqualif.hh>
57 template <
typename A1,
typename A2,
typename T = mln_argument(A1)>
82 void get_result(result_1& r1, result_2& r2) const;
86 mln_result(A1)
first() const;
88 mln_result(A2)
second() const;
110 template <
typename A1,
typename A2>
113 template <
typename T>
125 # ifndef MLN_INCLUDE_ONLY
127 template <
typename A1,
typename A2,
typename T>
134 template <
typename A1,
typename A2,
typename T>
143 template <
typename A1,
typename A2,
typename T>
148 a1_.take_as_init_(t);
149 a2_.take_as_init_(t);
152 template <
typename A1,
typename A2,
typename T>
161 template <
typename A1,
typename A2,
typename T>
170 template <
typename A1,
typename A2,
typename T>
179 template <
typename A1,
typename A2,
typename T>
184 bool tmp = a1_.to_result() && ! a2_.to_result();
188 template <
typename A1,
typename A2,
typename T>
194 r1 = a1_.to_result();
195 r2 = a2_.to_result();
198 template <
typename A1,
typename A2,
typename T>
203 return a1_.to_result();
206 template <
typename A1,
typename A2,
typename T>
211 return a2_.to_result();
216 template <
typename A1,
typename A2,
typename T>
224 template <
typename A1,
typename A2,
typename T>
233 template <
typename A1,
typename A2,
typename T>
238 return a1_.is_valid() && a2_.is_valid();
241 # endif // ! MLN_INCLUDE_ONLY
248 #endif // ! MLN_ACCU_AND_NOT_HH