gpt4 book ai didi

类似于eternity的C++对象持久化库

转载 作者:可可西里 更新时间:2023-11-01 09:22:04 26 4
gpt4 key购买 nike

我正在寻找一个 C++ 对象持久性库来替换 Eternity library我已经用它制作了大约一天的原型(prototype)。永恒图书馆功亏一篑。

我创建了一个与此类似的对象层次结构:

object heirarchy

我有一个 std::listArchiveJob*,我想以 XML 格式保存和恢复。每个 ArchiveJob 都有各种子对象,一些分配在堆栈上,一些分配在堆上。

Eternity 很好地正确地持久化了这些对象,但在恢复它们时却失败了。

(对于熟悉永恒的人,以下“恢复”操作无法从 XML 文件中读取任何数据)

xml_read( sequence<pointers>(), *pList, pList->begin(), xml, "ScheduleList" );

此调用为 ArchiveJob 对象分配了内存,但它的所有子对象都未初始化。

有人可以推荐一个对象层次结构持久性解决方案吗:

  1. 可以保留/恢复 STL 容器
  2. 是否对 Windows 开发人员友好(例如,如果需要构建,是否有 VS200x 解决方案文件)
  3. 可以处理复杂的对象层次结构

我应该花时间学习吗XML serialization with boost ?它如何处理存储在 STL 容器中的主对象中的复杂对象层次结构?

最佳答案

Boost Serialization是你需要的:

  1. serializing containers
  2. 它是跨平台和 Windows 友好的,尽管它没有 VS2008 解决方案文件
  3. serializing derived class

[编辑]其实我错了,它包括VS7.1 solution file

关于类似于eternity的C++对象持久化库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4804653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com