boost.serialization удаляет объект
От: nicolas1  
Дата: 19.01.08 14:41
Оценка:
Разбираюсь с boost serialization. Странная проблема получается
Архив xml.
Есть объект (А), в котором древовидная структура других объектов (В). В объектах В иммется weak_ptr на объект А. В объекте А ссылка на root-объект В.
Сериализуем объект А. Все нормально.
Потом десериализуем в уже созданный объект А. Десериализуется нормально, при выходе из restore_A вызывается деструктор объекта "а".
void restore_A(A &a, const char * filename)
{
std::ifstream ifs(filename);

assert(ifs.good());

boost::archive::xml_iarchive iar(ifs);

// restore the schedule from the archive
iar >> BOOST_SERIALIZATION_NVP(a);
}

Заменил weak_ptr в объектах В на обычный pointer, все нормально стало...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.