Boost logo

Boost Users :

From: Tiago de Paula Peixoto (tiago_at_[hidden])
Date: 2004-11-20 23:11:49


Hello.

I believe I found a bug in the remove_edge function, when the graph is
directed and allows parallel edges. Sometimes an edge simply isn't
removed. I think the problem is that remove_edge uses edge_range
internally, but this function needs an ordered EdgeList (such as
multisetS), and doesn't work properly when it's something like listS.

The attached file shows the problem. It builds a simple graph with a
loop, adds a parallel edge, and tries to remove it. The output of the
program is:

number of edges before removal: 5
number of edges after removal: 5

When EdgeList is changed from listS to multisetS, it works as it should:

number of edges before removal: 5
number of edges after removal: 4

I'm using Boost 1.32.0, with GCC 3.4.3 on GNU/Linux.
Thanks.

-- 
Tiago de Paula Peixoto <tiago_at_[hidden]>





Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net