¿Por qué no puedo hacer esto?Boost asignación 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????
}
}
¿Cómo debería hacerlo en su lugar ??
EDITAR: Llamar a este método cuando la siguiente variable se asigna correctamente, todavía causa un error cuando el objeto QueuList se destruye por algún motivo. Obtengo una afirmación de depuración. El destructor del objeto no hace nada en particular. Sólo se bloquea cuando llamo a esta función:
QueuList li;
QueuList lis;
li.SetNextPtr(&lis);
Cuando principal está fuera de ámbito, recibo una aserción de depuración ... ¿Alguna idea ??
editado mi respuesta para su edición. –