Dlaczego nie mogę tego zrobić?Zwiększ zadanie Shared_Ptr
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????
}
}
Jak mam to zrobić zamiast ??
EDYCJA: Wywołanie tej metody, gdy następna zmienna jest przypisana poprawnie, nadal powoduje błąd, gdy obiekt QueuList zostanie z jakiegoś powodu zniszczony. Otrzymuję asercję debugowania. Niszczyciel obiektu nie robi nic szczególnego. Rozbił się tylko, gdy zadzwonię do tej funkcji:
QueuList li;
QueuList lis;
li.SetNextPtr(&lis);
Po wyjściu poza zakres, otrzymuję potwierdzenie debugowania ... Jakieś pomysły?
redakcją moją odpowiedź za edycję. –