boost 是否支持 c++11 的 std::tuple 的序列化?
Does boost support serialization of c++11's std::tuple?
boost是否支持c++11的std::tuple的序列化?
在/boost/serialization/中找不到tuple.hpp头文件
我使用的是boost 1.52.0(如果需要,很乐意升级,但1.53版本的变化似乎与此无关)。
开箱即用,不需要。您必须自己编写序列化程序。幸运的是,已经有人做到了:
C++0x元组提升序列化(也在github中)
这里有另一个实现:
https://github.com/galaxyeye/atlas/blob/master/atlas/serialization/tuple.h
测试代码:
https://github.com/galaxyeye/atlas/blob/master/libs/serialization/test/tuple.cpp
享受:)
使用C++17的fold表达式,您可以轻松地实现一个序列化程序:
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);
}
基于这个答案。
相关文章:
- 如何在C++中序列化结构数据
- 序列化,没有库的整数,得到奇怪的结果
- 如何知道QDataStream不能反序列化某些内容
- 如何使用Python从C++中读取谷物序列化数据
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 带有Protobuf序列化的C++Hazelcast:字符串不是UTF-8格式的
- 自定义对象的dlib序列化在gcc中失败
- C++boost序列化多态性问题
- 增强基于 XML class_id的反序列化
- 提升反序列化对象具有 nan 或 -nan 值
- 在 cpp 中的平面缓冲区中序列化对象
- 每次进行继承时都需要提升::序列化::base_object吗?
- 如何在 c++ 非托管代码中反序列化 byte[] 的 json 字符串?
- 提升序列化 1:73 的向后兼容性问题
- 将 boost 序列化对象的 asio::streambuf 表示转换为 Beast 的 DynamicBody req.body()
- 为什么 nlohmann/json 序列化 "null" 而不是在 double 上"0"?
- 如何反序列化数组?
- 如何使用提升序列化?
- 序列化多晶型接口
- boost 是否支持 c++11 的 std::tuple 的序列化?