#include #include #include typedef boost::default_constructible_archetype< boost::sgi_assignable_archetype<> > dist_value; // So generate_infinity works... namespace std { template <> class numeric_limits { public: static dist_value max() { return boost::static_object::get(); } }; } int main() { using namespace boost; typedef default_constructible_archetype< sgi_assignable_archetype< equality_comparable_archetype<> > > vertex_t; { typedef vertex_list_graph_archetype graph_t; graph_t g; vertex_t s; typedef graph_traits::edge_descriptor edge_t; readable_property_map_archetype weight; readable_property_map_archetype index; read_write_property_map_archetype distance; dijkstra_shortest_paths(g, s, vertex_index_map(index). weight_map(weight). distance_map(distance)); } { typedef vertex_list_graph_archetype graph_t; vertex_t s; typedef graph_traits::edge_descriptor edge_t; readable_property_map_archetype weight; property_graph_archetype g; read_write_property_map_archetype pred; dijkstra_shortest_paths(g, s, predecessor_map(pred). weight_map(weight)); } { typedef vertex_list_graph_archetype graph_t; vertex_t s; property_graph_archetype g; read_write_property_map_archetype pred; readable_property_map_archetype index; dijkstra_shortest_paths(g, s, predecessor_map(pred). vertex_index_map(index)); } { typedef vertex_list_graph_archetype graph_t; graph_t g; vertex_t s; typedef graph_traits::edge_descriptor edge_t; readable_property_map_archetype weight; readable_property_map_archetype index; read_write_property_map_archetype color; read_write_property_map_archetype distance; binary_function_archetype combine(dummy_cons); binary_predicate_archetype compare(dummy_cons); dijkstra_visitor<> vis; dijkstra_shortest_paths(g, s, color_map(color). vertex_index_map(index). weight_map(weight). distance_map(distance). distance_combine(combine). distance_compare(compare). visitor(vis)); } return 0; }