You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Boost序列化递归shared_ptr时失败问题求助

示例代码:派生类B继承基类A,基类构造函数持有派生类的shared_ptr

Hey folks, here's a sample code snippet that shows class B inheriting from class A, with A's constructor holding a shared_ptr pointing to an instance of B:

#include <fstream>
#include <iostream>
// #include <boost/archive/text_iarchive.hpp>
// #include <boost/archive/text_oarchive.hpp>
#include <boost/archive/xml_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp>
#include <boost/archive/tmpdir.hpp>
#include <boost/filesystem.hpp>
#include <boost/serialization/shared_ptr.hpp>
// ... 后续代码可在此处补充

小提醒

这种设计要特别留意循环引用问题:如果B(或其成员)也持有A的shared_ptr,会导致两者的引用计数永远无法归0,进而引发内存泄漏。如果要用Boost序列化处理这类结构,需要显式处理循环引用,比如借助boost::serialization::object_id或者启用跟踪机制来让序列化库识别对象间的循环依赖。

内容的提问来源于stack exchange,提问作者B. A. Sylla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:39:32