19得票2回答
麦片和Boost序列化是否使用零拷贝技术?

我做了一些序列化协议的性能比较,包括FlatBuffers、Cap'n Proto、Boost serialization和cereal。所有测试均使用C++编写。 我知道FlatBuffers和Cap'n Proto使用零拷贝技术。使用零拷贝技术,序列化时间为零,但序列化对象的大小更大。 ...

11得票1回答
有没有一种方法可以使用Cereal/C++为std::map指定更简单的JSON序列化和反序列化方式?

我正在开发的项目是一个C++应用程序,管理大量自定义硬件设备。该应用程序具有用于客户端的套接字/端口接口(如 GUI)。每种设备类型都有其自己明确定义的 JSON 模式,我们可以使用 Cereal 进行序列化处理。 但是该应用程序还需要解析来自客户端的入站 JSON 请求。请求的一部分指定设...

10得票3回答
如何在编译时检测一个类型是否为shared_ptr

我希望能够以模板化的方式查找类型是否为shared_ptr,并基于此创建一个函数的新特化版本。 例如,下面是主函数: template <class T> inline void CEREAL_LOAD_FUNCTION_NAME( RelaxedJSONInputArchiv...

7得票3回答
如何使用Cereal将JSON对象序列化为不包含子对象的形式

假设我有一个C++的类,如下所示: struct Point { int x, y, z; }; 我希望使用Cereal将该结构体序列化为JSON。因此,我添加了一个像这样的序列化函数: struct Point { int x, y, z; template&...

7得票2回答
使用Cereal库对Eigen::Matrix进行序列化

已更新:在我搜索并阅读代码中的Doxygen注释后,我成功让它工作了。问题是,在使用resize()方法之前,我错过了转换,也没有为流使用std::ios::binary。如果您想要做类似的事情,请查看Azoth的答案。 我正在尝试使用Cereal序列化Eigen::Matrix类型。这就是我...