26 #ifndef MLN_VALUE_VALUE_ARRAY_HH
27 # define MLN_VALUE_VALUE_ARRAY_HH
33 # include <mln/value/set.hh>
44 template <
typename T,
typename V>
81 template <
typename T,
typename V>
82 std::ostream& operator<<(std::ostream& ostr, const value_array<T, V>& a);
85 # ifndef MLN_INCLUDE_ONLY
87 template <
typename T,
typename V>
93 mlc_is(
set<T>, U)::check();
96 template <
typename T,
typename V>
102 mlc_is(
set<T>, U)::check();
107 template <
typename T,
typename V>
112 memcpy(
v_, other.v_,
nvalues *
sizeof(V));
115 template <
typename T,
typename V>
121 memcpy(v_, other.v_, nvalues *
sizeof(V));
125 template <
typename T,
typename V>
130 return v_[s_.index_of(v)];
133 template <
typename T,
typename V>
138 return v_[s_.index_of(v)];
141 template <
typename T,
typename V>
149 template <
typename T,
typename V>
154 mln_precondition(i < nvalues);
158 template <
typename T,
typename V>
163 mln_precondition(i < nvalues);
167 template <
typename T,
typename V>
169 std::ostream& operator<<(std::ostream& ostr, const value_array<T,V>& a)
173 ostr << v << ':' << h(v) << ' ';
177 # endif // ! MLN_INCLUDE_ONLY
184 #endif // ! MLN_VALUE_VALUE_ARRAY_HH