使用 boost::serialization 序列化一个包含 boost adjacency_list 作为成员的类

Posted

技术标签:

【中文标题】使用 boost::serialization 序列化一个包含 boost adjacency_list 作为成员的类【英文标题】:Serializing a class containing as a member a boost adjacency_list using boost::serialization 【发布时间】:2013-10-30 15:53:10 【问题描述】:

我有一个类,它有一个成员 graph,它是一个 boost adjacency_list boost::adjacency_list<setS, setS, undirectedS, AINGNodeData, AINGEdgeData> graph;,它可以直接序列化吗?我怎样才能序列化它?我使用 boost:serialization。

【问题讨论】:

【参考方案1】:

这应该不是问题。 boost::adjacency_list<....> 类是可序列化的。查看文件

#include <boost/graph/adj_list_serialize.hpp>

只需确保您的属性AINGNodeData, AINGEdgeData 是可序列化的,库应该负责其余的工作。如果属性是简单类型或容器(例如 std::string),确保包含正确的 serialization 标头就足够了,例如

#include <boost/serialization/string.hpp>
#include <boost/serialization/vector.hpp>

祝你好运。

【讨论】:

以上是关于使用 boost::serialization 序列化一个包含 boost adjacency_list 作为成员的类的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 boost::serialization 序列化 std::vector?

如何为 boost::serialization 指定一个 nvp 包装器?

对 boost::serialization 的未定义引用

如何让 boost::serialization 工作?

使用 boost::serialization 时如何刷新文件缓冲区?

使用 boost::serialization 序列化一个包含 boost adjacency_list 作为成员的类