
I am trying to use BGL to model a directed multigraph, but every time I try to remove just one of the edges (u,v), it removes all of the edges from u to v. My graph definition is: typedef adjacency_list<listS, listS, bidirectionalS, VertexProperty, EdgeProperty> graphdata; where VertexProperty and EdgeProperty are properties I've defined. Everything else seems to work: I have can add parallel edges, find the edge I want to remove based on the EdgeProperty, filter the graph for topological sorting, check for existing edges, etc. In the following, e is of type graph_traits<graphdata>::edge_descriptor, and g is the graph of type graphdata (defined above): std::cout << "about to remove edge\n"; DumpInfo(); remove_edge(e, g); std::cout << "removed edge\n"; DumpInfo(); Here is some sample output: about to remove edge vertex: 0 out-edges: in-edges: (1,0) (1,0) adjacent vertices: vertex: 1 out-edges: (1,0) (1,0) in-edges: adjacent vertices: 0 0 removed edge vertex: 0 out-edges: in-edges: adjacent vertices: vertex: 1 out-edges: in-edges: adjacent vertices: Note that there were two edges present before the call to remove_edge, but only one after. What am I doing wrong? I'm using version 1.31, if that helps. Thanks, Nicholas Burlett nrb23@cornell.edu