id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 7877,dijkstra_shortest_paths and graphviz.hpp not compatible,Jochen Sprickerhof ,Jeremiah Willcock,"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::gray_target(Edge, Graph&) [with Edge = boost::detail::edge_desc_impl; Graph = const boost::adjacency_list >; UniformCostVisitor = boost::dijkstra_visitor<>; UpdatableQueue = boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; PredecessorMap = long unsigned int*; DistanceMap = int*; BinaryFunction = boost::closed_plus; BinaryPredicate = std::less]': /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 >; Buffer = boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >; BFSVisitor = boost::detail::dijkstra_bfs_visitor, boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >, boost::adj_list_edge_property_map, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus, std::less >; ColorMap = boost::two_bit_color_map >; 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::vertex_descriptor, Buffer&, BFSVisitor, ColorMap) [with IncidenceGraph = boost::adjacency_list >; Buffer = boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >; BFSVisitor = boost::detail::dijkstra_bfs_visitor, boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >, boost::adj_list_edge_property_map, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus, std::less >; ColorMap = boost::two_bit_color_map >; typename boost::graph_traits::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::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistZero, DijkstraVisitor, ColorMap) [with Graph = boost::adjacency_list >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map; Compare = std::less; Combine = boost::closed_plus; DistZero = int; ColorMap = boost::two_bit_color_map >; typename boost::graph_traits::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::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistInf, DistZero, DijkstraVisitor, ColorMap) [with VertexListGraph = boost::adjacency_list >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map; Compare = std::less; Combine = boost::closed_plus; DistInf = int; DistZero = int; ColorMap = boost::two_bit_color_map >; typename boost::graph_traits::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::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistInf, DistZero, DijkstraVisitor, const boost::bgl_named_params&, typename boost::enable_if_c::traversal_category>::value, boost::graph::detail::no_parameter>::type) [with VertexListGraph = boost::adjacency_list >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map; Compare = std::less; Combine = boost::closed_plus; DistInf = int; DistZero = int; T = int*; Tag = boost::vertex_distance_t; Base = boost::bgl_named_params; typename boost::graph_traits::vertex_descriptor = long unsigned int; typename boost::enable_if_c::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::vertex_descriptor, DistanceMap, WeightMap, IndexMap, const Params&) [with VertexListGraph = boost::adjacency_list >; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map; Params = boost::bgl_named_params >; typename boost::graph_traits::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::vertex_descriptor, DistanceMap, WeightMap, IndexMap, const Params&) [with VertexListGraph = boost::adjacency_list >; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map; Params = boost::bgl_named_params >; typename boost::graph_traits::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::vertex_descriptor, const boost::bgl_named_params&) [with VertexListGraph = boost::adjacency_list >; Param = int*; Tag = boost::vertex_distance_t; Rest = boost::bgl_named_params; typename boost::graph_traits::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 EdgeIndex boost::detail::get(const boost::detail::csr_edge_index_map&, const boost::detail::csr_edge_descriptor&) /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' and 'int*' /usr/local/include/boost/graph/dijkstra_shortest_paths.hpp: In instantiation of 'void boost::detail::dijkstra_bfs_visitor::gray_target(Edge, Graph&) [with Edge = boost::detail::edge_desc_impl; Graph = boost::adjacency_list >; UniformCostVisitor = boost::dijkstra_visitor<>; UpdatableQueue = boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; PredecessorMap = long unsigned int*; DistanceMap = int*; BinaryFunction = boost::closed_plus; BinaryPredicate = std::less]': /usr/local/include/boost/graph/breadth_first_search.hpp:45:7: required from 'void boost::BFSVisitorConcept::constraints() [with Visitor = boost::detail::dijkstra_bfs_visitor, boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >, boost::adj_list_edge_property_map, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus, std::less >; Graph = boost::adjacency_list >]' /usr/local/include/boost/concept/detail/has_constraints.hpp:32:14: required by substitution of 'template boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, boost::concepts::detail::wrap_constraints*) [with Model = boost::BFSVisitorConcept, boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >, boost::adj_list_edge_property_map, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus, std::less >, boost::adjacency_list > >]' /usr/local/include/boost/concept/detail/has_constraints.hpp:42:5: required from 'const bool boost::concepts::not_satisfied, boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >, boost::adj_list_edge_property_map, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus, std::less >, boost::adjacency_list > > >::value' /usr/local/include/boost/concept/detail/has_constraints.hpp:45:31: required from 'struct boost::concepts::not_satisfied, boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >, boost::adj_list_edge_property_map, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus, std::less >, boost::adjacency_list > > >' /usr/local/include/boost/mpl/if.hpp:67:11: required from 'struct boost::mpl::if_, boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >, boost::adj_list_edge_property_map, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus, std::less >, boost::adjacency_list > > >, boost::concepts::constraint, boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >, boost::adj_list_edge_property_map, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus, std::less >, boost::adjacency_list > > >, boost::concepts::requirement, boost::d_ary_heap_indirect, long unsigned int, long unsigned int&>, int*, std::less, std::vector >, boost::adj_list_edge_property_map, boost::edge_weight_t>, long unsigned int*, int*, boost::closed_plus, std::less >, boost::adjacency_list > >::************> >' /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::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistInf, DistZero, DijkstraVisitor, ColorMap) [with VertexListGraph = boost::adjacency_list >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map; Compare = std::less; Combine = boost::closed_plus; DistInf = int; DistZero = int; ColorMap = boost::two_bit_color_map >; typename boost::graph_traits::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::vertex_descriptor, PredecessorMap, DistanceMap, WeightMap, IndexMap, Compare, Combine, DistInf, DistZero, DijkstraVisitor, const boost::bgl_named_params&, typename boost::enable_if_c::traversal_category>::value, boost::graph::detail::no_parameter>::type) [with VertexListGraph = boost::adjacency_list >; DijkstraVisitor = boost::dijkstra_visitor<>; PredecessorMap = long unsigned int*; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map; Compare = std::less; Combine = boost::closed_plus; DistInf = int; DistZero = int; T = int*; Tag = boost::vertex_distance_t; Base = boost::bgl_named_params; typename boost::graph_traits::vertex_descriptor = long unsigned int; typename boost::enable_if_c::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::vertex_descriptor, DistanceMap, WeightMap, IndexMap, const Params&) [with VertexListGraph = boost::adjacency_list >; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map; Params = boost::bgl_named_params >; typename boost::graph_traits::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::vertex_descriptor, DistanceMap, WeightMap, IndexMap, const Params&) [with VertexListGraph = boost::adjacency_list >; DistanceMap = int*; WeightMap = boost::adj_list_edge_property_map, boost::edge_weight_t>; IndexMap = boost::vec_adj_list_vertex_id_map; Params = boost::bgl_named_params >; typename boost::graph_traits::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::vertex_descriptor, const boost::bgl_named_params&) [with VertexListGraph = boost::adjacency_list >; Param = int*; Tag = boost::vertex_distance_t; Rest = boost::bgl_named_params; typename boost::graph_traits::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 EdgeIndex boost::detail::get(const boost::detail::csr_edge_index_map&, const boost::detail::csr_edge_descriptor&) /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: ",Bugs,closed,To Be Determined,graph,Boost 1.52.0,Problem,fixed,,