|
Boost Users : |
From: Douglas Gregor (dgregor_at_[hidden])
Date: 2007-06-28 09:00:28
Jonas Gabriel wrote:
> Good afternoon,
>
> Inside a dijkstra visitor I would like to change the edge weights at
> some point, so in my visitor I'm trying to make a property map called
> weight :
>
> > template <class Edge, class Graph>
> > void examine_edge (Edge e, Graph& g) {
> > typename property_map<Graph, edge_weight_t>::type weight;
> > weight=get(edge_weight, g);
The "Graph" you get will actually be a const Graph. So you should
probably make the parameter to examine_edge a const Graph& and then
either use the "const_type" of the property map:
template <class Edge, class Graph>
void examine_edge (Edge e, const Graph& g) {
typename property_map<Graph, edge_weight_t>::const_type weight;
weight=get(edge_weight, g);
Or const_cast away the constness of the Graph, if you need to modify the
weights:
template <class Edge, class Graph>
void examine_edge (Edge e, const Graph& cg) {
Graph& g = const_cast<Graph&>(cg);
typename property_map<Graph, edge_weight_t>::type weight;
weight=get(edge_weight, g);
- Doug
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net