Boost logo

Boost :

From: E. Gladyshev (egladysh_at_[hidden])
Date: 2003-07-31 15:53:02


Anybody had problems with boost::signal? The following
sample code crashes on my Win2k/VC++6 system.

struct HelloWorld
{
  void operator()() const
  {
  }
};

// Signal with no arguments and a void return value
boost::signal0<void> sig;

// Connect a HelloWorld slot
HelloWorld hello;
sig.connect(hello);

// Call all of the slots
sig();

It crashes when find_if() is calling the functor. For
some reason the functor is bad.

        template<typename IteratorAdaptor>
        void increment(IteratorAdaptor& x)
        {
          ++x.base();
          x.base() = std::find_if(x.base(),
x.policies().end,
                                 
std::not1(is_disconnected()));
          cache.reset();
        }

***
*** The call stack is:
***

BOOST_SIGNALS! 00231007()
std::unary_negate<boost::signals::detail::is_disconnected>::operator()(const
std::pair<boost::any const
,boost::signals::detail::connection_slot_pair> &
{...}) line 126 + 41 bytes
std::find_if(std::_Tree<boost::any,std::pair<boost::any
const
,boost::signals::detail::connection_slot_pair>,std::multimap<boost::any,boost::signals::detail::connection_slot_pair,boost::function2<bool,boost::any,boost::any,int>,std::allocator<boost::signals::de347d932
{...}, ...) line 50 + 17 bytes
boost::signals::detail::slot_call_policies<boost::signals::detail::call_bound0<void>::caller<boost::function0<void,int>
>,std::_Tree<boost::any,std::pair<boost::any const
,boost::signals::detail::connection_slot_pair>,std::multimap<boost::any,boosaaa94384()
line 73 + 50 bytes
boost::iterator_adaptor<std::_Tree<boost::any,std::pair<boost::any
const
,boost::signals::detail::connection_slot_pair>,std::multimap<boost::any,boost::signals::detail::connection_slot_pair,boost::function2<bool,boost::any,boost::any,int>,std::alldc56f588()
line 901
boost::iterator_adaptor<std::_Tree<boost::any,std::pair<boost::any
const
,boost::signals::detail::connection_slot_pair>,std::multimap<boost::any,boost::signals::detail::connection_slot_pair,boost::function2<bool,boost::any,boost::any,int>,std::alldc56f588(int
0) line 904 + 84 bytes
boost::last_value<void>::operator()() line 49 + 14
bytes
boost::signal0<void,boost::last_value<void>,int,std::less<int>,boost::function0<void,int>
>::operator()() line 305 + 177 bytes

Eugene

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk