27 #ifndef MLN_CORE_SITE_SET_P_EDGES_PSITE_HH
28 # define MLN_CORE_SITE_SET_P_EDGES_PSITE_HH
34 # include <mln/core/internal/graph_psite_base.hh>
35 # include <mln/util/edge.hh>
42 template <
typename G,
typename F>
class p_edges;
43 namespace util {
template <
typename G>
class vertex; }
44 namespace internal {
template <
typename T,
typename E>
struct subject_impl; }
47 template <
typename G,
typename F>
76 template <
typename G,
typename F>
81 template <
typename G,
typename F>
86 template <
typename G,
typename F>
99 template <
typename G,
typename F,
typename E>
109 const E& exact_()
const;
112 template <
typename G,
typename F,
typename E>
116 p_edges_psite<G,F> >&, E >
125 # ifndef MLN_INCLUDE_ONLY
127 template <
typename G,
typename F>
133 template <
typename G,
typename F>
140 template <
typename G,
typename F>
147 template <
typename G,
typename F>
155 template <
typename G,
typename F>
160 return this->elt_.graph().vertex(this->elt_.v1());
163 template <
typename G,
typename F>
168 return this->elt_.graph().vertex(this->elt_.v2());
176 template <
typename G,
typename F>
178 operator==(
const p_edges_psite<G,F>& lhs,
const p_edges_psite<G,F>&
rhs)
180 mln_assertion(lhs.target_() == rhs.target_());
181 return lhs.id() == rhs.id();
184 template <
typename G,
typename F>
186 operator!=(
const p_edges_psite<G,F>& lhs,
const p_edges_psite<G,F>& rhs)
188 mln_assertion(lhs.target_() == rhs.target_());
189 return lhs.id() != rhs.id();
192 template <
typename G,
typename F>
194 operator<(const p_edges_psite<G,F>& lhs,
const p_edges_psite<G,F>&
rhs)
196 mln_assertion(lhs.target_() == rhs.target_());
197 return lhs.id() < rhs.id();
207 template <
typename G,
typename F,
typename E>
212 return internal::force_exact<const E>(*this);
215 template <
typename G,
typename F,
typename E>
220 return exact_().get_subject().e();
223 template <
typename G,
typename F,
typename E>
228 return exact_().get_subject().v1();
231 template <
typename G,
typename F,
typename E>
236 return exact_().get_subject().v2();
241 # endif // ! MLN_INCLUDE_ONLY
246 #endif // ! MLN_CORE_SITE_SET_P_EDGES_PSITE_HH