Index: boost/graph/prim_minimum_spanning_tree.hpp =================================================================== --- boost/graph/prim_minimum_spanning_tree.hpp (revision 86624) +++ boost/graph/prim_minimum_spanning_tree.hpp (working copy) @@ -15,7 +15,7 @@ #include namespace boost { - + namespace detail { // this should be somewhere else in boost... template struct _project2nd { @@ -36,29 +36,29 @@ Weight) { typedef typename property_traits::value_type W; - std::less compare; detail::_project2nd combine; - dijkstra_shortest_paths(G, s, params.distance_compare(compare). - distance_combine(combine)); + dijkstra_shortest_paths + (G, s, params.distance_combine(combine)); } } // namespace detail - template + class WeightMap, class IndexMap, class BinaryPredicate, + class DistZero, class DistInf> inline void prim_minimum_spanning_tree (const VertexListGraph& g, - typename graph_traits::vertex_descriptor s, - PredecessorMap predecessor, DistanceMap distance, WeightMap weight, + typename graph_traits::vertex_descriptor s, + PredecessorMap predecessor, DistanceMap distance, WeightMap weight, + BinaryPredicate compare, DistZero zero, DistInf inf, IndexMap index_map, DijkstraVisitor vis) { typedef typename property_traits::value_type W; - std::less compare; detail::_project2nd combine; dijkstra_shortest_paths(g, s, predecessor, distance, weight, index_map, - compare, combine, (std::numeric_limits::max)(), 0, + compare, combine, inf, zero, vis); } @@ -70,8 +70,8 @@ const bgl_named_params& params) { detail::prim_mst_impl - (g, - choose_param(get_param(params, root_vertex_t()), *vertices(g).first), + (g, + choose_param(get_param(params, root_vertex_t()), *vertices(g).first), params.predecessor_map(p_map), choose_const_pmap(get_param(params, edge_weight), g, edge_weight)); }