【发布时间】:2020-05-04 14:16:33
【问题描述】:
我的情况如下,作为测试 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 的其他结构嵌套。
【问题讨论】: