
*Hi Tristram Thanks for the reply. I tried the short version too as you suggestedbut the error doesn't go away: Attached below is the new code snippet and the related error. Thanks sandeep std::map<Vertex, Vertex> pred; boost::associative_property_map< std::map<Vertex, Vertex> > pred_map(pred); std::map<Vertex, size_type> dist; boost::associative_property_map< std::map<Vertex, size_type> > dist_map(dist); std::map<Vertex, size_type> weight; boost::associative_property_map< std::map<Vertex, size_type> > weight_map(weight); Vertex v; boost::dijkstra_shortest_paths(G, v, pred_map, dist_map, weight_map); error: no matching function for call to 'dijkstra_shortest_paths(Graph&, leda::node_struct*&, boost::associative_property_map<std::map<leda::node_struct*, leda::node_struct*, std::less<leda::node_struct*>, std::allocator<std::pair<leda::node_struct* const, leda::node_struct*> > >
&, boost::associative_property_map<std::map<leda::node_struct*, int, std::less<leda::node_struct*>, std::allocator<std::pair<leda::node_struct* const, int> > > >&, boost::associative_property_map<std::map<leda::node_struct*, int, std::less<leda::node_struct*>, std::allocator<std::pair<leda::node_struct* const, int> > > >&)'
*
Hello
You don't need to call dijkstra and specify all the templates as most of them have default values, and it's much more convinient to use named parameters:
boost::dijkstra_shortest_paths(graph, start_node, > boost::predecessor_map(predmap) > .distance_map(distmap) > .weight_map(weightmap) > ); } On Thu, Oct 30, 2008 at 9:00 PM, Sandeep Gupta <gupta.sandeep_at_[hidden]> wrote: Hi, I am missing something regarding the correct calling convention for Dijkstra algorithm. Here is the relevant part of the code:
typedef boost::associative_property_map< std::map<Vertex, int> > intmapt; typedef boost::associative_property_map< std::map<Vertex, Vertex>
nodemapt; dijkstra_visitor<null_visitor> mynullvis; dijkstra_shortest_paths<Graph, dijkstra_visitor<null_visitor>, nodemapt, intmapt, intmapt, nodemapt, std::less<int>, std::plus<int>, std::numeric_limits<int>, std::numeric_limits<int> > (G, v, predmap, distmap, weightmap, indexmap, std::less<int>(), std::plus<int>(), std::numeric_limits<int>::max(), 0, mynullvis);
I get an error as no matching function call dijkstra_shortest_paths. Appreciate some pointers as what could possibly be wrong.
Thanks sandeep