Re: [Boost-bugs] [Boost C++ Libraries] #10231: [graph] finish_edge seems never to get called in depth_first_search

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