From 19ed2331fdeddc7e6b69567d362a2c377a44bfdf Mon Sep 17 00:00:00 2001 From: Jeremy Siek Date: Thu, 29 Mar 2001 01:36:46 +0000 Subject: [PATCH] added traversal category [SVN r9666] --- include/boost/graph/detail/adjacency_list.hpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/include/boost/graph/detail/adjacency_list.hpp b/include/boost/graph/detail/adjacency_list.hpp index ef4947f7..d6be4c7d 100644 --- a/include/boost/graph/detail/adjacency_list.hpp +++ b/include/boost/graph/detail/adjacency_list.hpp @@ -396,7 +396,9 @@ namespace boost { template struct directed_graph_helper - : public directed_edges_helper { }; + : public directed_edges_helper { + typedef vertex_and_edge_list_graph_tag traversal_category; + }; // O(E/V) template @@ -512,6 +514,10 @@ namespace boost { template struct undirected_graph_helper; + struct undir_adj_list_traversal_tag : + public virtual vertex_and_edge_list_graph_tag, + public virtual bidirectional_graph_tag { }; + namespace detail { // O(E/V) template @@ -616,6 +622,8 @@ namespace boost { template struct undirected_graph_helper { + typedef undir_adj_list_traversal_tag traversal_category; + // Placement of these overloaded remove_edge() functions // inside the class avoids a VC++ bug. @@ -821,9 +829,15 @@ namespace boost { //========================================================================= // Bidirectional Graph Helper Class + struct bidir_adj_list_traversal_tag : + public virtual vertex_and_edge_list_graph_tag, + public virtual bidirectional_graph_tag { }; + template struct bidirectional_graph_helper - : public directed_edges_helper { }; + : public directed_edges_helper { + typedef bidir_adj_list_traversal_tag traversal_category; + }; template inline void