boost-serialization相关内容

如何连接 Boost 序列化 &iostreams 序列化 &gzip 一个对象到字符串?

我一直在使用 Boost 序列化库,它实际上非常好,让我可以制作简单的包装器来将我的可序列化对象保存为字符串,如下所示: namespace bar = boost::archive;命名空间 bio = boost::iostreams;模板内联 std::string saveString(const T & o) {std::ostringstream oss;bar::binary_oa ..

如何自定义默认的 Boost xml 序列化默认节点命名以使其更具可读性

下面的代码生成一个 xml 文件,但是,当它循环映射时,它总是将映射键命名为 first,将值命名为 second 有没有办法可以自定义标签名称first和second到groupid和groupType,如图所示在所需的输出 #include #include #include #include #include #include #include 使用命名空间标准;类 MyConne ..

反序列化构造函数无法正确读取数据

我正在尝试反序列化一个没有默认构造函数的对象.我已经看到您可以通过将存档传递给构造函数来做到这一点.但是,当我这样做时,它似乎没有正确读取数据?这是一个示例 - Works() 输出“1 2",因为它应该(使用默认构造函数和运算符>>),但 DoesntWork() 输出“0 0".我已经通过了,一切似乎都得到了适当的调用.谁能解释一下这两个函数的区别? #include #include #i ..
发布时间:2021-12-24 15:40:26 C/C++开发

提升原始 C 数组的序列化、反序列化

我正在尝试使用下面的示例序列化和反序列化原始 C 指针及其数据.它似乎序列化得很好,但我不确定如何使其反序列化 - 当我反序列化它时,它只会因内存访问冲突异常而崩溃.我想这是因为它不知道如何反序列化它,但我在哪里指定? 使用向量不是一种选择,在非常大的原始数据量中它非常慢 #include #include #include #include #pragma 警告(推送) ..
发布时间:2021-12-24 15:24:54 C/C++开发

boost::serialization 如何与 C++11 中的 std::shared_ptr 一起使用?

我知道有一个Boost模块序列化的boost::shared_ptr,但我找不到任何东西对于 std::shared_ptr. 另外,我不知道如何轻松实现它.恐怕下面的代码 命名空间提升{命名空间序列化{模板内联无效序列化(存档 & ar,std::shared_ptr &t,const unsigned int 版本){if(Archive::is_loading::value) ..
发布时间:2021-12-24 15:21:24 C/C++开发

如何使用自定义库的 boost 库进行性能测试

我需要对用 C++ 编写的库进行性能测试.该库由几组结构组成.我已经对这些类进行了序列化测试,但不确定如何对这些类进行性能测试.下面是库中结构的示例 struct X{上市:内部 p;双 q;X();~X();}结构体{浮动米;双 n;Y();~Y();}结构体{上市:std::map>X型;std::map>类型;国际我;字符串 ..

虚函数和模板冲突

我有一个 pointAccumulator 的抽象基类.这个抽象的基础将用诸如返回所有点的平均值的函数之类的方法来填充.这两个类的示例如下所示: class lala {民众:虚拟 someFunctions = 0;虚拟布尔 isEmpty() = 0;};类 lalaLower : 公共 lala {民众:lalaLower(){}~lalaLower(){}一些函数模板void seria ..
发布时间:2021-11-25 09:50:25 C/C++开发

C++11 std::shared_ptr + boost::serialization

嗨,有人已经设法使用 boost::serialization 序列化 C++11 std::shared_ptr.有很多过时的帖子,但没有一个可以接受的解决方案.我不打算讨论为什么我要使用 std::shared_ptr 接受它! 我发现了另一个帖子:boost serialize 和 std::shared_ptr 但它没有回答我的问题如何序列化 std::shared_ptr 它只建议 ..
发布时间:2021-07-23 20:30:59 C/C++开发

调用派生类的模板函数

在C ++中,我遇到了一个问题,即在拥有指向基类的指针的同时调用派生类的函数. 编辑:一些答案使我想到了 CRTP 但是我的意思是我需要有一个指向"Base *"类而不是"Base *"的指针,因为我不知道当前正在处理的类型(当前实例是从某种工厂创建的) 课程: class基础{..templatefunc(T arg){...};};派生类1:公共 ..
发布时间:2021-04-19 21:02:04 C/C++开发

通过指针反序列化时,boost :: serialization如何分配内存?

简而言之,我想知道boost :: serialization在通过指针反序列化时如何为对象分配内存.在下面,您将找到我的问题的一个示例,在伴随的代码中清楚地说明了该示例.该代码应具有完整的功能并可以很好地进行编译,本质上没有错误,仅是有关代码实际工作方式的问题. #include//空值#include#include#inclu ..
发布时间:2021-04-15 20:51:38 C/C++开发

BOOST_CLASS_EXPORT_ *宏无法像register_type()一样工作

当我将派生对象序列化到文件中,并在使用boost导出宏时从该文件序列化到基类指针时,出现unregistered_class异常.当我用存档的register_type()方法替换宏时,它可以工作.我需要使用宏,因为应用程序的大小和复杂性使register_type()方法不切实际. 我正在使用RHEL 7.4,boost 1.53和C ++ 11.这些类在共享库中.这里是示例代码来演示此问 ..
发布时间:2021-04-15 20:42:12 其他开发

序列化多态接口

我希望从其关联的接口序列化一个多态的类. 这是我找到的这个问题,似乎可以满足我的需要: 通过这种尝试,我得到一个异常 what():未注册的类-未注册或导出的派生类. 我尝试在 NetworkMessageLogin 上使用 CLASS_BOOST_EXPORT ,但是没有成功,我只是遇到了很多错误. 如何从实现我的序列化方法的类的接口实现序列化? 解决方案 您正在 ..
发布时间:2021-04-15 20:41:23 C/C++开发