boost是否支持c ++ 11的std :: tuple的序列化?

时间:2013-02-07 05:35:31

标签: c++ serialization boost c++11 boost-serialization

boost是否支持c ++ 11的std :: tuple?

的序列化

我在/ boost / serialization /

找不到tuple.hpp头文件

我正在使用boost 1.52.0(如果需要,很乐意升级,但似乎changes in version 1.53没有任何与此相关的内容)。

3 个答案:

答案 0 :(得分:8)

开箱即用,没有。您必须自己编写序列化程序。幸运的是,有人已经做过:

C++0x tuple boost serialization(也在github

答案 1 :(得分:3)

答案 2 :(得分:0)

使用 C++17's fold expressions,您可以轻松实现序列化程序:

template <typename Archive, typename... Types>
void boost::serialization::serialize(Archive &ar, std::tuple<Types...> &t, const unsigned int)
{
    std::apply([&](auto &...element)
                { ((ar & element), ...); },
                t);
}

基于this answer