cereal é uma biblioteca de serialização C++11 somente de cabeçalho. cereal pega tipos de dados arbitrários e os transforma reversivelmente em diferentes representações, como codificações binárias compactas, XML ou JSON. cereal foi projetado para ser rápido, leve e fácil de estender - ele não possui dependências externas e pode ser facilmente agrupado com outro código ou usado de forma independente.
Procurando mais informações sobre como funciona o cereal e sua documentação? Visite a página da web do cereal para obter as informações mais recentes.
A instalação e uso do cereal estão totalmente documentados na página principal, mas esta é uma versão rápida e suja:
# 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 ;
}
Entre em contato por e-mail ou pela web.
cereal é licenciado sob a licença BSD.
Você estava procurando o cereal Haskell? Vá aqui.