Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#7877 closed Bugs (fixed)

dijkstra_shortest_paths and graphviz.hpp not compatible

Reported by: Jochen Sprickerhof <boost@…> Owned by: Jeremiah Willcock
Milestone: To Be Determined Component: graph
Version: Boost 1.52.0 Severity: Problem
Keywords: Cc:

Description

when I include graph/graphviz.hpp in graph/example/dijkstra-example.cpp I get an compile error with Boost 1.52, whereas it works using Boost 1.50. Error using g++-4.7 on current Debian unstable (similar in Visual Studio):

In file included from dijkstra-example.cpp:16:0: /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp: In instantiation of 'void boost::detail::dijkstra_bfs_visitor<UniformCostVisitor, UpdatableQueue, WeightMap, PredecessorMap, DistanceMap, BinaryFunction, BinaryPredicate>::gray_target(Edge, Graph&) [with Edge = boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>; Graph = const boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; UniformCostVisitor = boost::dijkstra_visitor<>; UpdatableQueue = boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; PredecessorMap = long unsigned int*; DistanceMap = int*; BinaryFunction = boost::closed_plus<int>; BinaryPredicate = std::less<int>]': /usr/local/include/boost/graph/breadth_first_search.hpp:88:47: required from 'void boost::breadth_first_visit(const IncidenceGraph&, SourceIterator, SourceIterator, Buffer&, BFSVisitor, ColorMap) [with IncidenceGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; Buffer = boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >; BFSVisitor = boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<>, boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >, boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus<int>, std::less<int> >; ColorMap = boost::two_bit_color_map<boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; SourceIterator = long unsigned int*]' /usr/local/include/boost/graph/breadth_first_search.hpp:105:5: required from 'void boost::breadth_first_visit(const IncidenceGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, Buffer&, BFSVisitor, ColorMap) [with IncidenceGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; Buffer = boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >; BFSVisitor = boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<>, boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >, boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus<int>, std::less<int> >; ColorMap = boost::two_bit_color_map<boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:333:5: required from 'void boost::dijkstra_shortest_paths_no_init(const Graph&, typename boost::graph_traits<Graph>::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistZero, DijkstraVisitor, ColorMap) [with Graph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>; Compare = std::less<int>; Combine = boost::closed_plus<int>; DistZero = int; ColorMap = boost::two_bit_color_map<boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:384:5: required from 'void boost::dijkstra_shortest_paths(const VertexListGraph&, typename boost::graph_traits<VertexListGraph>::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistInf, DistZero, DijkstraVisitor, ColorMap) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>; Compare = std::less<int>; Combine = boost::closed_plus<int>; DistInf = int; DistZero = int; ColorMap = boost::two_bit_color_map<boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; typename boost::graph_traits<VertexListGraph>::vertex_descriptor = long unsigned int]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:354:5: required from 'void boost::dijkstra_shortest_paths(const VertexListGraph&, typename boost::graph_traits<VertexListGraph>::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistInf, DistZero, DijkstraVisitor, const boost::bgl_named_params<T, Tag, Base>&, typename boost::enable_if_c<boost::is_base_and_derived<boost::vertex_list_graph_tag, typename boost::graph_traits<VertexListGraph>::traversal_category>::value, boost::graph::detail::no_parameter>::type) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>; Compare = std::less<int>; Combine = boost::closed_plus<int>; DistInf = int; DistZero = int; T = int*; Tag = boost::vertex_distance_t; Base = boost::bgl_named_params<long unsigned int*, boost::vertex_predecessor_t, boost::no_property>; typename boost::graph_traits<VertexListGraph>::vertex_descriptor = long unsigned int; typename boost::enable_if_c<boost::is_base_and_derived<boost::vertex_list_graph_tag, typename boost::graph_traits<VertexListGraph>::traversal_category>::value, boost::graph::detail::no_parameter>::type = boost::graph::detail::no_parameter]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:427:7: required from 'void boost::detail::dijkstra_dispatch2(const VertexListGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, DistanceMap, WeightMap, IndexMap, const Params&) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>; Params = boost::bgl_named_params<int*, boost::vertex_distance_t, boost::bgl_named_params<long unsigned int*, boost::vertex_predecessor_t, boost::no_property> >; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:458:7: required from 'void boost::detail::dijkstra_dispatch1(const VertexListGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, DistanceMap, WeightMap, IndexMap, const Params&) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>; Params = boost::bgl_named_params<int*, boost::vertex_distance_t, boost::bgl_named_params<long unsigned int*, boost::vertex_predecessor_t, boost::no_property> >; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:476:5: required from 'void boost::dijkstra_shortest_paths(const VertexListGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, const boost::bgl_named_params<T, Tag, Base>&) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; Param = int*; Tag = boost::vertex_distance_t; Rest = boost::bgl_named_params<long unsigned int*, boost::vertex_predecessor_t, boost::no_property>; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]' dijkstra-example.cpp:61:75: required from here /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:140:54: error: no matching function for call to 'get(int*&, long unsigned int)' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:140:54: note: candidate is: In file included from /usr/local/include/boost/graph/compressed_sparse_row_graph.hpp:29:0,

from /usr/local/include/boost/graph/graphviz.hpp:28, from dijkstra-example.cpp:12:

/usr/local/include/boost/graph/detail/compressed_sparse_row_struct.hpp:68:3: note: template<class Vertex, class EdgeIndex> EdgeIndex boost::detail::get(const boost::detail::csr_edge_index_map<Vertex, EdgeIndex>&, const boost::detail::csr_edge_descriptor<Vertex, EdgeIndex>&) /usr/local/include/boost/graph/detail/compressed_sparse_row_struct.hpp:68:3: note: template argument deduction/substitution failed: In file included from dijkstra-example.cpp:16:0: /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:140:54: note: mismatched types 'const boost::detail::csr_edge_index_map<Vertex, EdgeIndex>' and 'int*' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp: In instantiation of 'void boost::detail::dijkstra_bfs_visitor<UniformCostVisitor, UpdatableQueue, WeightMap, PredecessorMap, DistanceMap, BinaryFunction, BinaryPredicate>::gray_target(Edge, Graph&) [with Edge = boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>; Graph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; UniformCostVisitor = boost::dijkstra_visitor<>; UpdatableQueue = boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; PredecessorMap = long unsigned int*; DistanceMap = int*; BinaryFunction = boost::closed_plus<int>; BinaryPredicate = std::less<int>]': /usr/local/include/boost/graph/breadth_first_search.hpp:45:7: required from 'void boost::BFSVisitorConcept<Visitor, Graph>::constraints() [with Visitor = boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<>, boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >, boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus<int>, std::less<int> >; Graph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >]' /usr/local/include/boost/concept/detail/has_constraints.hpp:32:14: required by substitution of 'template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, boost::concepts::detail::wrap_constraints<Model, (& Model:: constraints)>*) [with Model = boost::BFSVisitorConcept<boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<>, boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >, boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus<int>, std::less<int> >, boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> > >]' /usr/local/include/boost/concept/detail/has_constraints.hpp:42:5: required from 'const bool boost::concepts::not_satisfied<boost::BFSVisitorConcept<boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<>, boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >, boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus<int>, std::less<int> >, boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> > > >::value' /usr/local/include/boost/concept/detail/has_constraints.hpp:45:31: required from 'struct boost::concepts::not_satisfied<boost::BFSVisitorConcept<boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<>, boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >, boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus<int>, std::less<int> >, boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> > > >' /usr/local/include/boost/mpl/if.hpp:67:11: required from 'struct boost::mpl::if_<boost::concepts::not_satisfied<boost::BFSVisitorConcept<boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<>, boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >, boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus<int>, std::less<int> >, boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> > > >, boost::concepts::constraint<boost::BFSVisitorConcept<boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<>, boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >, boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus<int>, std::less<int> >, boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> > > >, boost::concepts::requirement<boost::concepts::failed************ boost::BFSVisitorConcept<boost::detail::dijkstra_bfs_visitor<boost::dijkstra_visitor<>, boost::d_ary_heap_indirect<long unsigned int, 4ul, boost::iterator_property_map<long unsigned int*, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>, long unsigned int, long unsigned int&>, int*, std::less<int>, std::vector<long unsigned int> >, boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus<int>, std::less<int> >, boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> > >::> >' /usr/local/include/boost/concept/detail/general.hpp:50:8: [ skipping 4 instantiation contexts ] /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:384:5: required from 'void boost::dijkstra_shortest_paths(const VertexListGraph&, typename boost::graph_traits<VertexListGraph>::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistInf, DistZero, DijkstraVisitor, ColorMap) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>; Compare = std::less<int>; Combine = boost::closed_plus<int>; DistInf = int; DistZero = int; ColorMap = boost::two_bit_color_map<boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; typename boost::graph_traits<VertexListGraph>::vertex_descriptor = long unsigned int]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:354:5: required from 'void boost::dijkstra_shortest_paths(const VertexListGraph&, typename boost::graph_traits<VertexListGraph>::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistInf, DistZero, DijkstraVisitor, const boost::bgl_named_params<T, Tag, Base>&, typename boost::enable_if_c<boost::is_base_and_derived<boost::vertex_list_graph_tag, typename boost::graph_traits<VertexListGraph>::traversal_category>::value, boost::graph::detail::no_parameter>::type) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>; Compare = std::less<int>; Combine = boost::closed_plus<int>; DistInf = int; DistZero = int; T = int*; Tag = boost::vertex_distance_t; Base = boost::bgl_named_params<long unsigned int*, boost::vertex_predecessor_t, boost::no_property>; typename boost::graph_traits<VertexListGraph>::vertex_descriptor = long unsigned int; typename boost::enable_if_c<boost::is_base_and_derived<boost::vertex_list_graph_tag, typename boost::graph_traits<VertexListGraph>::traversal_category>::value, boost::graph::detail::no_parameter>::type = boost::graph::detail::no_parameter]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:427:7: required from 'void boost::detail::dijkstra_dispatch2(const VertexListGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, DistanceMap, WeightMap, IndexMap, const Params&) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>; Params = boost::bgl_named_params<int*, boost::vertex_distance_t, boost::bgl_named_params<long unsigned int*, boost::vertex_predecessor_t, boost::no_property> >; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:458:7: required from 'void boost::detail::dijkstra_dispatch1(const VertexListGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, DistanceMap, WeightMap, IndexMap, const Params&) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map<boost::directed_tag, int, const int&, long unsigned int, const boost::property<boost::edge_weight_t, int>, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int>; Params = boost::bgl_named_params<int*, boost::vertex_distance_t, boost::bgl_named_params<long unsigned int*, boost::vertex_predecessor_t, boost::no_property> >; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:476:5: required from 'void boost::dijkstra_shortest_paths(const VertexListGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, const boost::bgl_named_params<T, Tag, Base>&) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int> >; Param = int*; Tag = boost::vertex_distance_t; Rest = boost::bgl_named_params<long unsigned int*, boost::vertex_predecessor_t, boost::no_property>; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]' dijkstra-example.cpp:61:75: required from here /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:140:54: error: no matching function for call to 'get(int*&, long unsigned int)' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp:140:54: note: candidate is: In file included from /usr/local/include/boost/graph/compressed_sparse_row_graph.hpp:29:0,

from /usr/local/include/boost/graph/graphviz.hpp:28, from dijkstra-example.cpp:12:

/usr/local/include/boost/graph/detail/compressed_sparse_row_struct.hpp:68:3: note: template<class Vertex, class EdgeIndex> EdgeIndex boost::detail::get(const boost::detail::csr_edge_index_map<Vertex, EdgeIndex>&, const boost::detail::csr_edge_descriptor<Vertex, EdgeIndex>&) /usr/local/include/boost/graph/detail/compressed_sparse_row_struct.hpp:68:3: note: template argument deduction/substitution failed: In file included from dijkstra-example.cpp:16:0:

Change History (5)

comment:1 by Jeremiah Willcock, 10 years ago

Component: Nonegraph
Owner: set to Jeremiah Willcock

comment:2 by Jeremiah Willcock, 10 years ago

I tried it with GCC 4.7.2 and the Boost trunk (which probably matches 1.53 for these files) and it worked. If you have similar issues with Visual Studio, you may be hitting something similar to bug #6647; there is a workaround given there.

Last edited 10 years ago by Jeremiah Willcock (previous) (diff)

comment:3 by Jochen Sprickerhof <boost@…>, 10 years ago

I've tried it with trunk and GCC 4.7.2 as well and got the same error. I'm in #boost if you want to discuss it. Thanks for having a look.

comment:4 by Jeremiah Willcock, 10 years ago

Resolution: fixed
Status: newclosed

(In [82439]) Changed to iterator_property_map; fixes #7877

comment:5 by Jeremiah Willcock, 10 years ago

(In [82441]) Removed obsolete workarounds and changed to iterator_property_map; refs #7877

Note: See TracTickets for help on using tickets.