27 #ifndef MLN_CORE_INTERNAL_NEIGHB_NITER_IMPL_HH
28 # define MLN_CORE_INTERNAL_NEIGHB_NITER_IMPL_HH
34 # include <mln/core/macros.hh>
35 # include <mln/core/internal/force_exact.hh>
42 template <
typename P,
typename W>
class graph_window_base;
43 template <
typename G,
typename S>
class graph_elt_window;
44 template <
typename G,
typename S,
typename S2>
class graph_elt_mixed_window;
45 template <
typename G,
typename F,
typename I>
class graph_elt_window_if;
46 template <
typename G,
typename F>
class line_graph_elt_window;
49 template <
typename G>
class vertex;
50 template <
typename G>
class edge;
61 template <
typename W,
typename E>
82 template <
typename P,
typename E>
87 return internal::force_exact<E>(*this).compute_p_().id();
100 template <
typename G,
typename E>
113 template <
typename G,
typename E>
124 template <
typename P,
typename T,
typename E>
128 typedef typename T::target
S;
133 mln_graph_element(
S) element()
const
135 return internal::force_exact<E>(*this).compute_p_().element();
147 template <
typename G,
typename S,
typename E>
150 graph_elt_window<G,S> >,
161 template <
typename G,
typename F,
typename E>
164 line_graph_elt_window<G, F> >,
176 template <
typename G,
typename S,
typename I,
typename E>
179 graph_elt_window_if<G,S,I> >,
191 template <
typename G,
typename S,
typename S2,
typename E>
194 graph_elt_mixed_window<G,S,S2> >,
205 #endif // ! MLN_CORE_INTERNAL_NEIGHB_NITER_IMPL_HH