文章目录

cereal是一个开源的(BSD License),轻量级的C++序列化库。它只有头文件,支持序列化成binary,xml,JSON。

下面是一个小例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void Serialization()
{
{
std::ofstream os("data.xml");
cereal::XMLOutputArchive archive(os);
int Age = 30;
string str = "Dawei";
archive(CEREAL_NVP(Age), cereal::make_nvp("Name", str));
}
{
std::ifstream is("data.xml");
cereal::XMLInputArchive archive(is);
int age;
string name;
archive(age, name);
cout << "Age: " << age << endl << "Name: " << name << endl;
}
}

生成的xml文件如下:

1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<cereal>
<Age>30</Age>
<Name>Dawei</Name>
</cereal>

文章目录