|
Boost Users : |
Subject: [Boost-users] [Boost Graph Dijkstra Shortest Path]: Could not deduce template argument
From: Choppin, Simon (S.Choppin_at_[hidden])
Date: 2017-07-26 14:42:54
Hello all,
I use boost graph library for some point cloud processing and have had great success. However, I'm struggling to compile Dijkstra shorted path on MSVC v140. I am using boost library 1.53 and compiling in 64 bit.
I used the example as a starting point but when I try to compile I get the error:
Error C2784 'E boost::detail::get(boost::detail::underlying_edge_desc_map_type<E>,const boost::detail::reverse_graph_edge_descriptor<EdgeDesc> &)': could not deduce template argument for 'boost::detail::underlying_edge_desc_map_type<E>' from 'double *'
I understand the fundamental problem that the template can't deduce type, however I'm struggling to source the problem.
My graph type is:
typedef adjacency_list < vecS, vecS, undirectedS, no_property, property <edge_weight_t, double> > WeightedGraph;
Because I'm using MSVC I use the suggested non parameter name version:
property_map<WeightedGraph, vertex_index_t>::type indexmap = get(vertex_index, GraphW);
property_map<WeightedGraph, edge_weight_t>::type weightmap;
std::vector<Vertex> p(num_vertices(GraphW));
std::vector<double> d(num_vertices(GraphW));
Vertex s = vertex(indices.first, GraphW);
Vertex s_end = vertex(indices.second, GraphW);
dijkstra_shortest_paths
(GraphW, s, &p[0], &d[0], weightmap, indexmap,
std::less<double>(), closed_plus<double>(),
(double)(std::numeric_limits<double>::max)(), (double)0,
Custom_visitor(s_end)
);
I'm using a custom visitor to stop processing early as in this stackoverflow post: https://stackoverflow.com/questions/32047840/make-boost-dijkstra-algorithm-stop-when-it-reaches-a-destination-node
Any ideas? All help greatly appreciated.
Simon C
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