我可以使用boost :: serialization库来序列化类似联合的C ++类

时间:2016-04-20 15:05:15

标签: c++ serialization boost

我已经实现了类似联合的类,这是从C ++ Primer第19.6节中学到的。

是否有机会使用boost :: serialization库序列化它?

1 个答案:

答案 0 :(得分:1)

不确定

<强> Live On Coliru

#include <iostream>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/variant.hpp>
#include <boost/serialization/string.hpp>
#include <boost/archive/text_oarchive.hpp>

using V = boost::variant<std::string, double, int>;

int main()
{
    boost::archive::text_oarchive oa(std::cout);
    oa << std::vector<V> { 3.14, "std::string", 42 };
}

打印

22 serialization::archive 14 0 0 3 0 0 0 1 3.14000000000000012e+00 0 11 std::string 2 42

使用binary_archive或xml_archive。如果必须,请禁止标题。您当然可以使用自定义序列化反序列化和添加变体成员。