
2 Apr
2009
2 Apr
'09
10:36 p.m.
In boost 1.37.0 there is a "metaprogramming bug" in the edge_range() function: it fails to compile when the Directed Selector template argument to adjacency_list is set to directedS, but does work if the argument is either undirectedS, or bidirectionalS. Attached below is a short program illustrating the problem. The problem is that edge_range() instantiates a StoredEdge via a constructor taking 3 arguments, but when the Directed Selector is directedS StoredEdge is typedef'ed to stored_edge_property<vertex_descriptor, EdgeProperty>, which has no such constructor. One solution might be to create overloaded edge_range_dispatch() functions, and dispatch on Config::on_edge_storage. -- Michael