diff --git a/include/boost/graph/filtered_graph.hpp b/include/boost/graph/filtered_graph.hpp index d1966d64..b406141a 100644 --- a/include/boost/graph/filtered_graph.hpp +++ b/include/boost/graph/filtered_graph.hpp @@ -26,8 +26,8 @@ #ifndef BOOST_FILTERED_GRAPH_HPP #define BOOST_FILTERED_GRAPH_HPP -#include -#include +#include +#include namespace boost { @@ -134,43 +134,45 @@ namespace boost { typedef typename Traits::edge_parallel_category edge_parallel_category; // IncidenceGraph requirements - typedef typename filter_iterator >::type out_edge_iterator; + edge_descriptor, edge_descriptor, edge_descriptor*, + multi_pass_input_iterator_tag, std::ptrdiff_t + > OutEdgeIterGen; + typedef typename OutEdgeIterGen::type out_edge_iterator; typedef typename Traits::degree_size_type degree_size_type; // AdjacencyGraph requirements - typedef typename detail::adjacency_iterator< - self, vertex_descriptor, out_edge_iterator, - out_edge_iterator>::type adjacency_iterator; + typedef typename adjacency_iterator_generator::type adjacency_iterator; // BidirectionalGraph requirements - typedef typename filter_iterator >::type in_edge_iterator; + edge_descriptor, edge_descriptor, edge_descriptor*, + multi_pass_input_iterator_tag, std::ptrdiff_t + > InEdgeIterGen; + typedef typename InEdgeIterGen::type in_edge_iterator; // VertexListGraph requirements - typedef typename filter_iterator >::type vertex_iterator; + vertex_descriptor, vertex_descriptor, vertex_descriptor*, + multi_pass_input_iterator_tag, std::ptrdiff_t> VertexIterGen; + typedef typename VertexIterGen::type vertex_iterator; typedef typename Traits::vertices_size_type vertices_size_type; // EdgeListGraph requirements - typedef typename filter_iterator >::type edge_iterator; - typedef typename Traits::edges_size_type edges_size_type; + edge_descriptor, edge_descriptor, edge_descriptor*, + multi_pass_input_iterator_tag, std::ptrdiff_t + > EdgeIterGen; + typedef typename EdgeIterGen::type edge_iterator; + typedef typename Traits::edges_size_type edges_size_type; - typedef typename Graph::edge_property_type edge_property_type; - typedef typename Graph::vertex_property_type vertex_property_type; + typedef typename Graph::edge_property_type edge_property_type; + typedef typename Graph::vertex_property_type vertex_property_type; typedef typename Graph::graph_tag graph_tag; //private: @@ -178,12 +180,9 @@ namespace boost { EdgePredicate m_edge_pred; VertexPredicate m_vertex_pred; - typedef filter_iterator_policies out_edge_iter_policy; - typedef filter_iterator_policies in_edge_iter_policy; - typedef filter_iterator_policies edge_iter_policy; + typedef typename OutEdgeIterGen::policies_type out_edge_iter_policy; + typedef typename InEdgeIterGen::policies_type in_edge_iter_policy; + typedef typename EdgeIterGen::policies_type edge_iter_policy; }; //===========================================================================