26 #ifndef MLN_SET_SYM_DIFF_HH
27 # define MLN_SET_SYM_DIFF_HH
36 # include <mln/core/site_set/p_set.hh>
37 # include <mln/convert/from_to.hh>
38 # include <mln/util/ord.hh>
45 template <
typename P>
class p_set;
55 template <
typename Sl,
typename Sr>
57 sym_diff(
const Site_Set<Sl>& lhs,
const Site_Set<Sr>&
rhs);
60 # ifndef MLN_INCLUDE_ONLY
62 template <
typename Sl,
typename Sr>
65 sym_diff(
const Site_Set<Sl>& lhs,
const Site_Set<Sr>&
rhs)
67 mln_trace(
"set::sym_diff");
69 typedef mln_site(Sl) P;
70 mlc_converts_to(mln_psite(Sr), P)::check();
71 std::set< P, util::ord<P> > sl, sr, sd;
74 std::set_symmetric_difference(sl.begin(), sl.end(),
76 std::inserter(sd, sd.begin()),
84 # endif // ! MLN_INCLUDE_ONLY
91 #endif // ! MLN_SET_SYM_DIFF_HH