Here is my visitor after making the suggested changes. I am not sure
this does the job because I don't understand the following:
1) How is a custom visitor used as a replacement to depth_first_search?
The code for how to handle the coloring of the vertex nodes seems to be
handled by the depth_first_search algorithm and not the associated
visitor.
2) When is the operator() called?
Stephen
-------- CODE --------
template
class filter_visitor
: public boost::base_visitor< filter_visitor<Visitor> >
{
private:
typedef on_discover_vertex event_filter;
public:
filter_visitor (Graph const& g)
: m_color (internal_map (num_vertices(g)))
{}
template
void operator() (Vertex child_node, Graph& g)
{
Vertex parent_node = g[child_node].get_parent_node();
typename graph_traits<Graph>::edge_descriptor e =
edge(child_node, parent_node, g).first;
g[child_node].send_message (g[parent_node].get_object(),
g[e]);
}
private:
ColorMap m_color;
};