diff --git a/doc/depth_first_search.html b/doc/depth_first_search.html index a376de3f1..65c99be30 100644 --- a/doc/depth_first_search.html +++ b/doc/depth_first_search.html @@ -28,10 +28,10 @@
template <class IncidenceGraph, class DFSVisitor, class ColorMap> -void depth_first_visit(IncidenceGraph& g, +DFSVisitor depth_first_visit(IncidenceGraph& g, typename graph_traits<IncidenceGraph>::vertex_descriptor s, - DFSVisitor& vis, ColorMap color) + DFSVisitor vis, ColorMap color) template <class IncidenceGraph, class DFSVisitor, class ColorMap, class TerminatorFunc> -void depth_first_visit(IncidenceGraph& g, +DFSVisitor depth_first_visit(IncidenceGraph& g, typename graph_traits<IncidenceGraph>::vertex_descriptor s, - DFSVisitor& vis, ColorMap color, TerminatorFunc func = TerminatorFunc()) + DFSVisitor vis, ColorMap color, TerminatorFunc func = TerminatorFunc())
diff --git a/include/boost/graph/depth_first_search.hpp b/include/boost/graph/depth_first_search.hpp
index 17d25e89c..89bd3f212 100644
--- a/include/boost/graph/depth_first_search.hpp
+++ b/include/boost/graph/depth_first_search.hpp
@@ -263,7 +263,7 @@ namespace detail
} // namespace detail
template < class VertexListGraph, class DFSVisitor, class ColorMap >
-void depth_first_search(const VertexListGraph& g, DFSVisitor vis,
+DFSVisitor depth_first_search(const VertexListGraph& g, DFSVisitor vis,
ColorMap color,
typename graph_traits< VertexListGraph >::vertex_descriptor start_vertex)
{
@@ -298,18 +298,19 @@ void depth_first_search(const VertexListGraph& g, DFSVisitor vis,
g, u, vis, color, detail::nontruth2());
}
}
+ return vis;
}
template < class VertexListGraph, class DFSVisitor, class ColorMap >
-void depth_first_search(
+DFSVisitor depth_first_search(
const VertexListGraph& g, DFSVisitor vis, ColorMap color)
{
typedef typename boost::graph_traits< VertexListGraph >::vertex_iterator vi;
std::pair< vi, vi > verts = vertices(g);
if (verts.first == verts.second)
- return;
+ return vis;
- depth_first_search(g, vis, color, detail::get_default_starting_vertex(g));
+ return depth_first_search(g, vis, color, detail::get_default_starting_vertex(g));
}
template < class Visitors = null_visitor > class dfs_visitor
@@ -409,22 +410,24 @@ namespace graph
BOOST_GRAPH_MAKE_OLD_STYLE_PARAMETER_FUNCTION(depth_first_search, 1)
template < class IncidenceGraph, class DFSVisitor, class ColorMap >
-void depth_first_visit(const IncidenceGraph& g,
+DFSVisitor depth_first_visit(const IncidenceGraph& g,
typename graph_traits< IncidenceGraph >::vertex_descriptor u,
DFSVisitor vis, ColorMap color)
{
vis.start_vertex(u, g);
detail::depth_first_visit_impl(g, u, vis, color, detail::nontruth2());
+ return vis;
}
template < class IncidenceGraph, class DFSVisitor, class ColorMap,
class TerminatorFunc >
-void depth_first_visit(const IncidenceGraph& g,
+DFSVisitor depth_first_visit(const IncidenceGraph& g,
typename graph_traits< IncidenceGraph >::vertex_descriptor u,
DFSVisitor vis, ColorMap color, TerminatorFunc func = TerminatorFunc())
{
vis.start_vertex(u, g);
detail::depth_first_visit_impl(g, u, vis, color, func);
+ return vis;
}
} // namespace boost
diff --git a/test/Jamfile.v2 b/test/Jamfile.v2
index a0c15ca7b..0fc3b1dfb 100644
--- a/test/Jamfile.v2
+++ b/test/Jamfile.v2
@@ -44,6 +44,7 @@ alias graph_test_regular :
[ run csr_graph_test.cpp : : : : :