Re: [Boost-bugs] [Boost C++ Libraries] #10100: [signals2] trackable fails to disconnect slot on deletion

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #10100: [signals2] trackable fails to disconnect slot on deletion
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-11-06 06:45:51


#10100: [signals2] trackable fails to disconnect slot on deletion
-------------------------------+----------------------
  Reporter: wim@… | Owner: fmhess
      Type: Bugs | Status: closed
 Milestone: To Be Determined | Component: signals2
   Version: Boost 1.55.0 | Severity: Problem
Resolution: fixed | Keywords:
-------------------------------+----------------------

Comment (by Evangelos Foutras <evangelos@…>):

 The fix for this issue causes at least Wt and Hugin not to build with
 boost 1.57.0 (1.56.0 works fine).

 In the case of Wt, it does:

 {{{
 #include <boost/signals2/trackable.hpp>
 #include <boost/signals2.hpp>
 }}}

 Putting that in a test.cpp and trying to compile it with 'g++ -c test.cpp'
 results in:

 {{{
 In file included from test.cpp:1:0:
 /usr/include/boost/signals2/trackable.hpp: In member function
 â€˜boost::weak_ptr<boost::signals2::detail::trackable_pointee>
 boost::signals2::trackable::get_weak_ptr() const’:
 /usr/include/boost/signals2/trackable.hpp:49:7: error: return type ‘class
 boost::weak_ptr<boost::signals2::detail::trackable_pointee>’ is incomplete
        {
        ^
 In file included from /usr/include/boost/signals2/slot.hpp:22:0,
                  from /usr/include/boost/signals2/connection.hpp:23,
                  from /usr/include/boost/signals2/signal.hpp:21,
                  from /usr/include/boost/signals2.hpp:19,
                  from test.cpp:2:
 /usr/include/boost/signals2/detail/tracked_objects_visitor.hpp: In member
 function ‘void
 boost::signals2::detail::tracked_objects_visitor::add_if_trackable(const
 boost::signals2::trackable*) const’:
 /usr/include/boost/signals2/detail/tracked_objects_visitor.hpp:85:72:
 error: invalid use of void expression
              slot_->_tracked_objects.push_back(trackable->get_weak_ptr());
                                                                         ^
 }}}

 If I flip the two include directives around, it compiles fine.

 Is this something that can be fixed in boost or would it be considered a
 bug in downstream apps (even though it used to work before boost 1.57.0)?

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/10100#comment:7>
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:17 UTC