boost是否支持c ++ 11的std :: tuple?
的序列化我在/ boost / serialization /
找不到tuple.hpp头文件我正在使用boost 1.52.0(如果需要,很乐意升级,但似乎changes in version 1.53没有任何与此相关的内容)。
答案 0 :(得分:8)
开箱即用,没有。您必须自己编写序列化程序。幸运的是,有人已经做过:
答案 1 :(得分:3)
这是另一个实现:
https://github.com/galaxyeye/atlas/blob/master/atlas/serialization/tuple.h
使用测试代码:
https://github.com/galaxyeye/atlas/blob/master/libs/serialization/test/tuple.cpp
享受:)
答案 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。