cereal
v1.3.2
breakfast 是僅包含頭檔的 C++11 序列化函式庫。穀物接受任意資料類型,並將它們可逆地轉換為不同的表示形式,例如緊湊的二進位編碼、XML 或 JSON。穀物被設計為快速、輕量級且易於擴展 - 它沒有外部依賴項,可以輕鬆地與其他程式碼捆綁在一起或獨立使用。
尋找有關穀物食品如何運作及其文件的更多資訊?請造訪穀物食品的網頁以獲取最新資訊。
穀物的安裝和使用在主頁上有完整的記錄,但這是一個快速而骯髒的版本:
# 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 ;
}
透過電子郵件或網路聯絡。
麥片是根據 BSD 許可證獲得許可的。
您在尋找 Haskell 麥片嗎?去這裡吧。