Opened 22 years ago
Closed 22 years ago
#914 closed Bugs (None)
problem with lvalue property maps
Reported by: | nobody | Owned by: | jsiek |
---|---|---|---|
Milestone: | Component: | graph | |
Version: | None | Severity: | |
Keywords: | Cc: |
Description
[Boost 1.21.1 with egcs 2.95.2] The code at the end of this report gives me the compiler error /usr/local/include/boost/graph/detail/adjacency_list.hpp: In method `double & boost::vec_adj_list_vertex_property_map<boost::adjacency_list<boost::vecS,boost::vecS,boost::bidirectionalS,boost::property<vertex_info_t,double,boost::no_property>,boost::no_property,boost::no_property>,const boost::adjacency_list<boost::vecS,boost::vecS,boost::bidirectionalS,boost::property<vertex_info_t,double,boost::no_property>,boost::no_property,boost::no_property> &,boost::property<vertex_info_t,double,boost::no_property>,vertex_info_t>::operator [](unsigned int)': foo.cc:19: instantiated from here /usr/local/include/boost/graph/detail/adjacency_list.hpp:2084: conversion from `const double' to `double &' discards qualifiers Apparently operator[] leaves out the const in its return type for the const_type version of a property map. ------------- code begins -------------- #include <boost/graph/properties.hpp> #include <boost/graph/adjacency_list.hpp> using namespace boost; struct vertex_info_t { }; namespace boost { BOOST_INSTALL_PROPERTY(vertex, info); }; typedef property<vertex_info_t, double> vertex_properties; typedef adjacency_list<vecS, vecS, bidirectionalS, vertex_properties> graph_t; double const & foo(graph_t const & x) { property_map<graph_t, vertex_info_t>::const_type pmap = get(vertex_info_t(), x); return pmap[vertex(0, x)]; }
Note:
See TracTickets
for help on using tickets.