Моя ситуация выглядит следующим образом, в рамках тестирования интерфейса API мне нужно сохранить некоторые ссылки (структуру и векторы структур) как XML. Сохраненный файл XML в конечном итоге будет использоваться для извлечения ссылочной структуры и сравнения с текущим состоянием. Я ищу библиотеку, которая могла бы помочь мне решить эту проблему, и обнаружил, что библиотека зерновых кажется хорошим вариантом.
Я просто нахожу, что пишу много стандартного кода, и задаюсь вопросом, использую ли я эту библиотеку так, как мне хотелось бы? он предназначен для.
Пример: я хочу сериализовать структуру A из API, поскольку я не могу изменить A напрямую, чтобы добавить метод сериализации, мне нужно создать структуру B, которая наследуется от A по порядку сериализовать все атрибуты 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.