$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] [BGL] A bug in the edge_range() function.
From: Michael Olea (oleaj_at_[hidden])
Date: 2009-04-02 18:36:34
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