From eae9b22a8d22d3530e37830dd6da5f8a8db20191 Mon Sep 17 00:00:00 2001 From: Jeremy Siek Date: Thu, 29 Mar 2001 01:46:17 +0000 Subject: [PATCH] added traversal category [SVN r9668] --- include/boost/graph/reverse_graph.hpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/include/boost/graph/reverse_graph.hpp b/include/boost/graph/reverse_graph.hpp index 44b5eb25..9f7c8b3f 100644 --- a/include/boost/graph/reverse_graph.hpp +++ b/include/boost/graph/reverse_graph.hpp @@ -16,6 +16,7 @@ struct reverse_graph_tag { }; template class reverse_graph { typedef reverse_graph Self; + typedef graph_traits Traits; public: typedef BidirectionalGraph base_type; @@ -23,36 +24,39 @@ class reverse_graph { reverse_graph(GraphRef g) : m_g(g) {} // Graph requirements - typedef typename graph_traits::vertex_descriptor vertex_descriptor; - typedef typename graph_traits::edge_descriptor edge_descriptor; - typedef typename graph_traits::directed_category directed_category; - typedef typename graph_traits::edge_parallel_category edge_parallel_category; + typedef typename Traits::vertex_descriptor vertex_descriptor; + typedef typename Traits::edge_descriptor edge_descriptor; + typedef typename Traits::directed_category directed_category; + typedef typename Traits::edge_parallel_category edge_parallel_category; + typedef typename Traits::traversal_category traversal_category; // IncidenceGraph requirements - typedef typename graph_traits::in_edge_iterator out_edge_iterator; - typedef typename graph_traits::degree_size_type degree_size_type; + typedef typename Traits::in_edge_iterator out_edge_iterator; + typedef typename Traits::degree_size_type degree_size_type; // BidirectionalGraph requirements - typedef typename graph_traits::out_edge_iterator in_edge_iterator; + typedef typename Traits::out_edge_iterator in_edge_iterator; // AdjacencyGraph requirements typedef typename adjacency_iterator_generator::type adjacency_iterator; // VertexListGraph requirements - typedef typename graph_traits::vertex_iterator vertex_iterator; + typedef typename Traits::vertex_iterator vertex_iterator; // Stuff that shouldn't be required according to the docs // except that we don't have partial specialization support on all // compilers typedef void edge_iterator; - typedef typename graph_traits::vertices_size_type vertices_size_type; + typedef typename Traits::vertices_size_type vertices_size_type; typedef void edges_size_type; // More typedefs used by detail::edge_property_map, vertex_property_map - typedef typename BidirectionalGraph::edge_property_type edge_property_type; - typedef typename BidirectionalGraph::vertex_property_type vertex_property_type; + typedef typename BidirectionalGraph::edge_property_type + edge_property_type; + typedef typename BidirectionalGraph::vertex_property_type + vertex_property_type; typedef reverse_graph_tag graph_tag;