cereal es una biblioteca de serialización C++ 11 de solo encabezado. cereal toma tipos de datos arbitrarios y los convierte de forma reversible en diferentes representaciones, como codificaciones binarias compactas, XML o JSON. cereal fue diseñado para ser rápido, liviano y fácil de extender: no tiene dependencias externas y puede combinarse fácilmente con otro código o usarse de forma independiente.
¿Busca más información sobre cómo funciona el cereal y su documentación? Visite la página web de cereales para obtener la información más reciente.
La instalación y el uso de cereal están completamente documentados en la página web principal, pero esta es una versión rápida y sucia:
# include < cereal/types/unordered_map.hpp >
# include < cereal/types/memory.hpp >
# include < cereal/archives/binary.hpp >
# include < fstream >
struct MyRecord
{
uint8_t x, y;
float z;
template < class Archive >
void serialize ( Archive & ar )
{
ar ( x, y, z );
}
};
struct SomeData
{
int32_t id;
std::shared_ptr<std::unordered_map< uint32_t , MyRecord>> data;
template < class Archive >
void save ( Archive & ar ) const
{
ar ( data );
}
template < class Archive >
void load ( Archive & ar )
{
static int32_t idGen = 0 ;
id = idGen++;
ar ( data );
}
};
int main ()
{
std::ofstream os ( " out.cereal " , std::ios::binary);
cereal::BinaryOutputArchive archive ( os );
SomeData myData;
archive ( myData );
return 0 ;
}
Póngase en contacto por correo electrónico o en la web.
El cereal tiene la licencia BSD.
¿Estabas buscando el cereal Haskell? Ve aquí.