I'm using Boost 1.70.0, with vs-2017. When using depth_first_search I've observed that the finish_edge function in the visitor is not called when compiled with msvc compiler. With gcc (8.3) the finish_edge function is called properly
the sample code:
struct DfsVisitor : public boost::default_dfs_visitor
{
template <class Graph>
void
finish_edge(typename Graph::edge_descriptor ed, const Graph& g)
{
std::cout << "Finish edge " << boost::source(ed, g) << "->" << boost::target(ed, g) << std::endl;
}
};
DfsVisitor dfs;
boost::depth_first_search(g, boost::visitor(dfs)); // g is graph, adjacency_list