27 #ifndef MLN_CORE_SITE_SET_P_MUTABLE_ARRAY_OF_HH
28 # define MLN_CORE_SITE_SET_P_MUTABLE_ARRAY_OF_HH
42 # include <mln/core/site_set/p_double.hh>
43 # include <mln/core/internal/site_set_base.hh>
44 # include <mln/util/array.hh>
52 template <
typename S>
class p_mutable_array_of;
59 struct site_set_< p_mutable_array_of<S> >
61 typedef trait::site_set::nsites::unknown
nsites;
62 typedef trait::site_set::bbox::unknown
bbox;
63 typedef trait::site_set::contents::growing
contents;
64 typedef trait::site_set::arity::multiple
arity;
78 p_mutable_array_of<S> >,
79 private mlc_is_a(S, Site_Set)::check_t
157 template <
typename I>
158 const S&
set_2_(
const I& it)
const;
169 template <
typename S>
170 std::ostream& operator<<(std::ostream& ostr, const p_mutable_array_of<S>& r);
175 # ifndef MLN_INCLUDE_ONLY
177 template <
typename S>
183 template <
typename S>
191 template <
typename S>
196 return p.index() < arr_.nelements() && arr_[p.index()].has(p.p());
199 template <
typename S>
207 template <
typename S>
212 mln_precondition(s.is_valid());
216 template <
typename S>
221 mln_precondition(i < arr_.nelements());
225 template <
typename S>
230 mln_precondition(i < arr_.nelements());
234 template <
typename S>
239 return arr_.nelements();
242 template <
typename S>
248 mln_postcondition(this->is_empty());
251 template <
typename S>
256 return arr_.is_empty();
259 template <
typename S>
264 return arr_.memory_size();
267 template <
typename S>
269 const util::array<S>&
275 template <
typename S>
277 const util::array<S>&
283 template <
typename S>
284 template <
typename I>
293 template <
typename S>
294 std::ostream& operator<<(std::ostream& ostr, const p_mutable_array_of<S>& a)
296 return ostr << a.array_hook_();
299 # endif // ! MLN_INCLUDE_ONLY
304 #endif // ! MLN_CORE_SITE_SET_P_MUTABLE_ARRAY_OF_HH