[[https://uscilab.github.io/cereal/|Site web]] [[https://github.com/USCiLab/cereal|Github]]
Il y a de bons exemples dans la doc.
* Sérialisation tronquée en fin de fichier
Il faut juste faire attention, la sérialisation n'est pas terminée après l'appel à ''archive'', mais uniquement une fois le destructeur de ''archive'' appelé. [[https://uscilab.github.io/cereal/serialization_archives.html|Serialization Archives]] {{ :lib:cereal:cereal_docs_-_serialization_archives_2021-11-29_23_42_52_.html |Archive du 22/11/2019 le 29/11/2021}}
int main()
{
std::ofstream os("out.cereal", std::ios::binary);
cereal::BinaryOutputArchive archive( os );
SomeData myData;
archive( myData );
return 0;
}
* Nommer les champs pour la sérialisation XML ou JSON
Pour donner un nom spécifique aux champs, on peut remplacer :
template
void serialize(Archive& ar)
{
ar(b_);
}
par
template
void serialize(Archive& ar)
{
ar(cereal::make_nvp("b", b_));
}