26 #ifndef MLN_UTIL_STATIC_ARRAY_HH
27 # define MLN_UTIL_STATIC_ARRAY_HH
34 # include <mln/core/internal/window_base.hh>
35 # include <mln/core/concept/gdpoint.hh>
37 # include <mln/metal/is_a.hh>
38 # include <mln/util/set.hh>
39 # include <mln/fun/i2v/all_to.hh>
40 # include <mln/norm/linfty.hh>
41 # include <mln/literal/zero.hh>
49 template <
typename T, std::
size_t n>
57 template <
typename InputIterator>
70 template <
typename D, std::
size_t n>
75 # ifndef MLN_INCLUDE_ONLY
77 template <
typename T, std::
size_t n>
83 template <
typename T, std::
size_t n>
84 template <
typename InputIterator>
88 mln_precondition(std::distance(first, last) == n);
89 std::copy(first, last, data_);
92 template <
typename T, std::
size_t n>
100 template <
typename T, std::
size_t n>
108 template <
typename T, std::
size_t n>
113 return std::find(data_, data_ + n, value) != data_ + n;
117 template <
typename D, std::
size_t n>
120 operator==(
const static_array<D, n>& lhs,
const static_array<D, n>&
rhs)
122 for(std::size_t i = 0; i < n; ++i)
123 if (lhs[i] != rhs[i])
128 # endif // ! MLN_INCLUDE_ONLY
134 #endif // ! MLN_UTIL_STATIC_ARRAY_HH