提升信号2和共享指针

时间:2015-07-08 12:34:09

标签: c++ boost

我有2个解决方案。在第一个解决方案中,我有课程

boost::shared_ptr<boost::signals2::signal<void()>> wakeup_signal_ptr;

以及方法get_wakeup_signal_ptr。

在第二个解决方案中我也有信号共享指针,我使用方法 方法get_wakeup_signal_ptr从第一个解决方案获取指针但是当我想用lambda连接这个信号时我有断言:px!= 0在shared_ptr中。

知道为什么吗? 最好的问候。

真实代码的小例子:

在第一个项目中,我有:

class Implementation
{
    public:
    boost::shared_ptr<boost::signals2::signal<void()>> wakeup_signal_ptr;
    boost::shared_ptr<boost::signals2::signal<void()>> get_wakeup_signal_ptr() {return(wakeup_signal_ptr);};
}

在第二个项目中我有:

   boost::shared_ptr<boost::signals2::signal<void()>> wakeup_signal_ptr;
   wakeup_signal_ptr = member_of_implementation->get_wakeup_signal_ptr();
   wakeup_signal_ptr->connect(boost::bind(&class_in_second_projet::method_for_invoke, this));

项目构建没有任何问题,但在运行时我有

   Assertion failed: px != 0, file D:\project\3rdParty\Common\include\boost/s
   mart_ptr/shared_ptr.hpp, line 648

当我到达负责连接槽的代码时。

0 个答案:

没有答案