为什么我不能这样做?
当主函数结束时,我收到一个调试断言...有什么想法吗?
boost::shared_ptr<QueuList> next;
void QueuList::SetNextPtr(QueuList* Next)
{
boost::mutex mtx;
boost::mutex::scoped_lock lock(mtx);
{// scope of lock
//if (next == NULL) // is this needed on a shared_ptr??
next = Next; // Why can I not assign a raw ptr to a shared_ptr????
}
我该怎么做呢?
编辑:当下一个变量被正确赋值时调用此方法,但是由于某种原因QueuList对象被销毁时仍会导致错误。我得到了一个调试断言。对象的析构函数没有特别的操作。只有在调用这个函数时才会崩溃:
QueuList li;
QueuList lis;
li.SetNextPtr(&lis);
当主函数结束时,我收到一个调试断言...有什么想法吗?