diff --git a/include/boost/graph/compressed_sparse_row_graph.hpp b/include/boost/graph/compressed_sparse_row_graph.hpp index 03fb5cc3..0f9f3392 100644 --- a/include/boost/graph/compressed_sparse_row_graph.hpp +++ b/include/boost/graph/compressed_sparse_row_graph.hpp @@ -1687,27 +1687,23 @@ get(const csr_edge_index_map&, return key.idx; } -// Doing the right thing here (by unifying with vertex_index_t and -// edge_index_t) breaks GCC. -template -struct property_map +template +struct property_map +{ + typedef identity_property_map type; + typedef type const_type; +}; + +template +struct property_map { private: - typedef identity_property_map vertex_index_type; typedef typename graph_traits::edge_descriptor edge_descriptor; typedef csr_edge_index_map edge_index_type; - typedef typename mpl::if_, - edge_index_type, - detail::error_property_not_found>::type - edge_or_none; - public: - typedef typename mpl::if_, - vertex_index_type, - edge_or_none>::type type; - + typedef edge_index_type type; typedef type const_type; }; @@ -1743,26 +1739,6 @@ get(edge_index_t, const BOOST_CSR_GRAPH_TYPE&, return e.idx; } -// Support for bundled properties -template -struct property_map -{ -private: - typedef graph_traits traits; - typedef VertexProperty vertex_bundled; - typedef EdgeProperty edge_bundled; - typedef typename mpl::if_c<(detail::is_vertex_bundle::value), - typename traits::vertex_descriptor, - typename traits::edge_descriptor>::type - descriptor; - -public: - typedef bundle_property_map - type; - typedef bundle_property_map const_type; -}; - template inline typename property_map::type