26 #ifndef MLN_CORE_INTERNAL_SITE_SET_BASE_HH
27 # define MLN_CORE_INTERNAL_SITE_SET_BASE_HH
34 # include <mln/core/concept/site_set.hh>
35 # include <mln/core/concept/site_proxy.hh>
51 template <
typename P,
typename E>
52 struct site_set_base_ :
public Site_Set<E>
55 typedef typename subject<P>::ret site;
60 bool is_empty()
const;
69 bool is_empty_()
const;
73 # ifndef MLN_INCLUDE_ONLY
75 template <
typename P,
typename E>
77 site_set_base_<P,E>::site_set_base_()
81 template <
typename P,
typename E>
84 site_set_base_<P,E>::is_empty()
const
86 return exact(
this)->is_empty_();
89 template <
typename P,
typename E>
92 site_set_base_<P,E>::is_empty_()
const
94 mlc_is(mln_trait_site_set_nsites(E),
95 trait::site_set::nsites::known)::check();
96 return exact(
this)->nsites() == 0;
99 # endif // ! MLN_INCLUDE_ONLY
106 #endif // ! MLN_CORE_INTERNAL_SITE_SET_BASE_HH