26 #ifndef MLN_UTIL_MULTI_SITE_HH
27 # define MLN_UTIL_MULTI_SITE_HH
37 # include <mln/core/concept/object.hh>
39 # include <mln/util/ord.hh>
68 size_type
size() const;
70 reference operator[](size_type n);
71 const_reference operator[](size_type n) const;
73 const_reference
front() const;
95 # ifndef MLN_INCLUDE_ONLY
104 template <
typename P>
111 template <
typename P>
112 typename multi_site<P>::size_type
118 template <
typename P>
119 typename multi_site<P>::reference
125 template <
typename P>
126 typename multi_site<P>::const_reference
132 template <
typename P>
133 typename multi_site<P>::const_reference
136 mln_precondition(!sites.empty());
140 template <
typename P>
141 typename multi_site<P>::reference
144 mln_precondition(!sites.empty());
149 template <
typename P>
151 operator==(
const multi_site<P>& lhs,
const multi_site<P>& rhs)
153 return lhs.sites == rhs.sites;
156 template <
typename P>
158 operator< (const multi_site<P>& lhs,
const multi_site<P>&
rhs)
162 return std::lexicographical_compare(lhs.sites.begin(), lhs.sites.end(),
163 rhs.sites.begin(), rhs.sites.end(),
167 # endif // ! MLN_INCLUDE_ONLY
174 #endif // ! MLN_UTIL_MULTI_SITE_HH