Listing 1: Key elements of DiscoverVertex
struct DiscoverVertex : public base_visitor<DiscoverVertex> { typedef on_discover_vertex event_filter; template <class Vertex, class Graph> void operator()(Vertex mVertex, Graph& mGraph) { // .... if(out_degree(mVertex,mGraph) != 2) { graph_traits<ShapeStructureGraph>::vertex_descriptor sVertex; sVertex = boost::add_vertex(*sGraph_); // ... } }; //... dfs_visitor<pair<DiscoverVertex,null_visitor> > vis = std::make_pair(DiscoverVertex(/* ... */), null_visitor()); End of Listing