Ticket #6313: reverse_graph.patch

File reverse_graph.patch, 2.1 KB (added by Alex Hagen-Zanker <ahh34@…>, 11 years ago)

patch that modifies operator[] accessing edge and vertex bundles. And extending reverse_graph_edge_property_map

  • reverse_graph.hpp

     
    124124    typedef transform_iterator<detail::reverse_graph_edge_descriptor_maker<typename Traits::edge_descriptor>, typename Traits::out_edge_iterator> in_edge_iterator;
    125125
    126126    // AdjacencyGraph requirements
    127   typedef typename adjacency_iterator_generator<Self,
     127    typedef typename adjacency_iterator_generator<Self,
    128128    vertex_descriptor, out_edge_iterator>::type adjacency_iterator;
    129129
    130130    // VertexListGraph requirements
     
    149149               typename detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::type
    150150             >::type&
    151151    operator[](Descriptor x)
    152     { return detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(m_g[x]); }
     152    { return m_g[detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(x)]; }
    153153
    154154    template<typename Descriptor>
    155155    typename graph::detail::bundled_result<
     
    157157               typename detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::type
    158158             >::type const&
    159159    operator[](Descriptor x) const
    160     { return detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(m_g[x]); }
     160    { return m_g[detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(x)]; }
    161161#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
    162162
    163163    static vertex_descriptor null_vertex()
     
    340340    typedef typename property_traits<PM>::category category;
    341341
    342342    explicit reverse_graph_edge_property_map(const PM& pm): underlying_pm(pm) {}
     343    reverse_graph_edge_property_map() {}
    343344
    344345    friend reference
    345346    get(const reverse_graph_edge_property_map& m,
     
    357358    reference operator[](const key_type& k) {
    358359      return (this->underlying_pm)[k.underlying_descx];
    359360    }
     361
     362    const reference operator[](const key_type& k) const {
     363      return (this->underlying_pm)[k.underlying_descx];
     364    }
    360365  };
    361366
    362367  struct reverse_graph_vertex_property_selector {