26 #include <mln/trait/value/comp.hh>
28 #include <mln/value/int_u8.hh>
29 #include <mln/algebra/vec.hh>
34 template <
typename T,
unsigned i,
typename C>
37 mlc_equal(mln_trait_value_comp(
T, i), C)::check();
44 mlc_equal(mln_trait_value_comp(
T, 0),
T)::check();
48 template <
typename T,
typename C>
49 void check_homogeneous()
51 mlc_equal(mln_trait_value_comp(
T, 0), C)::check();
58 template <
typename R,
typename G,
typename B>
64 template <
typename R,
typename G,
typename B>
65 struct value_< my_rgb<R,G,B> >
81 typename C0,
typename C1,
typename C2>
82 void check_heterogeneous()
84 mlc_equal(mln_trait_value_comp(
T, 0), C0)::check();
85 mlc_equal(mln_trait_value_comp(
T, 1), C1)::check();
86 mlc_equal(mln_trait_value_comp(
T, 2), C2)::check();
101 check_equal<T, 0, T>();
106 check_equal<T, 0, T>();
115 check_homogeneous< T, C >();
116 check_equal< T, 0, C >();
117 check_equal< T, 1, C >();
122 check_homogeneous< T, C >();
123 check_equal< T, 0, C >();
124 check_equal< T, 1, C >();
131 check_heterogeneous< my_rgb< bool, unsigned, float* >,