Subject: Re: [Boost-bugs] [Boost C++ Libraries] #10231: [graph] finish_edge seems never to get called in depth_first_search
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-08-25 08:34:39
#10231: [graph] finish_edge seems never to get called in depth_first_search
-------------------------------+----------------------
Reporter: Alex <alxlaus@â¦> | Owner: jewillco
Type: Bugs | Status: new
Milestone: To Be Determined | Component: graph
Version: Boost 1.56.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+----------------------
Comment (by Alex <alxlaus@â¦>):
"finish_edge" is meant wherever "finish_tree_edge" is said, of course.
Replying to [comment:3 Alex <alxlaus@â¦>]:
> Replying to [comment:2 edwin.carlinet@â¦]:
> > Look like a duplicate of #9770 (ticket). Does the patch given in
ticket:9770#comment:1 solve your problem?
>
> It might (partly), but I didn't try (see below for the reason).
>
> First, the main point of this bug is that the code making finish_edge
optional to the visitor seems to be broken, at least in my quite old
environment (Ubuntu 12.10 and gcc 4.7.2). As far as I can see, the
implementation using BOOST_TTI_HAS_MEMBER_FUNCTION(finish_tree_edge) does
not work. Testing it in an minimal example showed that it claims there is
no finish_tree_edge member function even though there is. So the problem
probably actually does not lie in the Graph library itself, but in the TTI
library it uses. I had a look into that, but it is quite convoluted macro-
code and I gave up on fixing that properly. Should I file a new bug to get
the attention of the TTI developers?
>
> Second, I didn't try the patch, because I think the problem lies
elsewhere: The call of finish_tree_edge is dislocated. It should be right
after the pop of the edge (think of the 'pop' of the edge as 'returning'
(in the original recursive implementation) back over the edge). This is
solved in this pull request: https://github.com/boostorg/graph/pull/16
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/10231#comment:5> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:16 UTC