我的情况如下,作为测试 API 接口的一部分,我需要将一些引用(结构和结构向量)保存为 XML。保存的 XML 文件最终将用于检索参考结构并与当前状态进行比较。我正在寻找一个可以帮助我解决该问题的库,并发现谷物库似乎是一个不错的选择。
我只是发现自己编写了很多样板代码,并且想知道我是否按照预期的方式使用该库。
示例:我想从 API 序列化结构 A,因为我不能直接修改 A 以添加序列化方法,我需要创建一个从 A 继承的结构 B,以便序列化 A 的所有属性。
struct A {
int foo;
float bar;
std::string some_text;
};
struct B: public A {
template <class Archive>
void serialize( Archive & ar)
{
ar(cereal::make_nvp("foo", foo));
ar(cereal::make_nvp("bar", bar));
ar(cereal::make_nvp("some_text", some_text));
}
};
1)这是使用谷物的正确方法吗?
2)有没有更好的方法或另一个库可以让我用更少的样板代码获得相同的结果?(记住有不少结构需要序列化)
注意:结构可以与来自同一 API 的其他结构嵌套。