
I'm trying to use the edge(u, v, g) on a revese_grap h, I get a stack overflow after the programs enters an infinite loop(or actually infinite recursive call). once looking at the selected overload I could see a very strait-forward correction: template <class BidirectionalGraph, class GRef> inline std::pair<typename BidirectionalGraph::edge_descriptor, bool> edge(const typename BidirectionalGraph::vertex_descriptor u, const typename BidirectionalGraph::vertex_descriptor v, const reverse_graph<BidirectionalGraph,GRef>& g) { return edge(v, u, g); //this should be: edge(v, u, g.mg) } the next call to edg(...) shoul pass the adapted grap. eyal.

On Nov 18, 2004, at 4:26 AM, Eyal Farago wrote:
I'm trying to use the edge(u, v, g) on a revese_grap h, I get a stack overflow after the programs enters an infinite loop(or actually infinite recursive call).
once looking at the selected overload I could see a very strait-forward correction:
template <class BidirectionalGraph, class GRef> inline std::pair<typename BidirectionalGraph::edge_descriptor, bool> edge(const typename BidirectionalGraph::vertex_descriptor u, const typename BidirectionalGraph::vertex_descriptor v, const reverse_graph<BidirectionalGraph,GRef>& g) { return edge(v, u, g); //this should be: edge(v, u, g.mg) }
the next call to edg(...) shoul pass the adapted grap.
eyal.
That message had the strangest formatting in Apple Mail that I've ever seen :) Thanks for the bug report and fix! I've checked the fix into CVS for 1.32.1 or 1.33.0 (whatever is next). Doug
participants (2)
-
Doug Gregor
-
Eyal Farago