27 #ifndef MLN_CORE_CONCEPT_VALUE_SET_HH
28 # define MLN_CORE_CONCEPT_VALUE_SET_HH
34 # include <mln/core/concept/value_iterator.hh>
41 template <
typename E>
struct Value_Set;
83 std::ostream& operator<<(std::ostream& ostr, const Value_Set<E>& vs);
86 # ifndef MLN_INCLUDE_ONLY
92 typedef mln_value(E)
value;
93 typedef mln_fwd_viter(E) fwd_viter;
94 typedef mln_bkd_viter(E) bkd_viter;
96 bool (E::*m1)(const value&) const = & E::has;
98 value (E::*m2)(
unsigned) const = & E::operator[];
100 unsigned (E::*m3)() const = & E::nvalues;
104 template <typename E>
106 std::ostream& operator<<(std::ostream& ostr, const
Value_Set<E>& vs_)
108 const E& vs =
exact(vs_);
110 for (
unsigned i = 0; i < vs.nvalues(); ++i)
111 ostr << vs[i] <<
' ';
115 # endif // ! MLN_INCLUDE_ONLY
120 #endif // ! MLN_CORE_CONCEPT_VALUE_SET_HH