Folks,
I've encountered a problem whilst compiling the following program, and I
can't quite figure out why it shouldn't work. Whilst compiling usign
boost 1.32.0 and gcc 3.3.4, I get
cannot convert `boost::detail::edge_desc_impl' to `int'
for argument `2' to `const T& get(const T*, int) [with T = int]'
I believe this is saying that edge descriptors cannot be used as indices
into a property map (that is, "wm"). Why is this different from vertex
descriptors, which are accepted as indices into "p" and "dist"?
Any help appreciated.
Thanks,
Andrea
#include
#include
#include
int
main ()
{
typedef boost::adjacency_list < boost::vecS, boost::vecS, boost::bidirectionalS > Graph;
Graph G;
std::vector < int > wm;
std::vector < boost::graph_traits < Graph >::vertex_descriptor > p;
std::vector < int > dist;
boost::bellman_ford_shortest_paths (G, boost::num_vertices(G),
&wm[0], &p[0], &dist[0],
boost::closed_plus < int >(),
std::less < int >(),
boost::default_bellman_visitor ());
return 0;
}