27 #ifndef MLN_VALUE_PROXY_HH
28 # define MLN_VALUE_PROXY_HH
43 # include <mln/core/concept/proxy.hh>
44 # include <mln/trait/value_.hh>
45 # include <mln/metal/unconst.hh>
53 template <
typename I>
class proxy;
61 struct value_< mln::value::proxy<I> >
63 value_< mln_value(I) >
68 struct value_< mln::value::proxy<const I> >
70 value_< mln_value(I) >
86 public mln::internal::proxy_impl< mln_value(I), proxy<I> >
100 proxy(I& ima, const mln_psite(I)&
p);
106 proxy<I>& operator=(const mln_value(I)& v);
112 template <typename J>
136 mln_value(I)
subj_();
146 # ifndef MLN_INCLUDE_ONLY
148 template <
typename I>
155 template <
typename I>
163 template <
typename I>
173 template <
typename I>
178 mln_precondition(ima_ != 0);
183 template <
typename I>
188 mln_precondition(ima_ != 0);
191 this->operator=(rhs.to_value());
195 template <
typename I>
196 template <
typename J>
201 mln_precondition(ima_ != 0);
202 this->operator=(rhs.to_value());
223 template <
typename I>
226 proxy<I>::to_value()
const
228 mln_precondition(ima_ != 0);
229 return ima_->read_(p_);
232 template <
typename I>
237 mln_precondition(ima_ != 0);
238 return ima_->read_(p_);
242 # endif // ! MLN_INCLUDE_ONLY
249 #endif // ! MLN_VALUE_PROXY_HH