我有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
当我到达负责连接槽的代码时。