【发布时间】:2013-01-22 13:12:33
【问题描述】:
boost 是否支持 c++11 的 std::tuple 序列化?
我在 /boost/serialization/ 中找不到 tuple.hpp 头文件
我正在使用 boost 1.52.0(如果需要,很乐意升级,但似乎 changes in version 1.53 与此无关)。
【问题讨论】:
标签: 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 与此无关)。
【问题讨论】:
标签: c++ serialization boost c++11 boost-serialization
使用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。
【讨论】:
开箱即用,不。您必须自己编写序列化程序。幸运的是,有人已经这样做了:
【讨论】: