问题标签 [boost-serialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
153 浏览

c++ - 提升序列化省略包装器的版本

我如何告诉 boost 对于特定结构它不应该写入/读取类“版本”标识符?

我正在编写一些包装类,用于以较小的方式序列化某些类型(如可变长度整数)。如果包装器编写了一个类版本,则大小减小的全部意义就丢失了(在大多数情况下最终会变大)。

例如,假设integer a我将替换此代码:

有了这个:

我看到了这个is_wrapper特征,但我真的找不到任何关于它的作用的文档,或者它是否有帮助。

0 投票
1 回答
1006 浏览

c++ - 具有可序列化嵌套类的类的序列化奇怪的编译错误

我正在尝试学习一些提升序列化的基础知识。所以我按照教程创建了简单的class Aand class Bclass C其中包含A a_;andB b_;作为私有成员。

在 IDEone live 中,它出现所有奇怪和可怕的编译器错误。在我的 VS2010 上,我只收到 2 个相同的错误:

我做错了什么,在拥有and之后如何使class C序列化?class Aclass B

0 投票
2 回答
7479 浏览

c++ - 使用 boost 序列化时的链接器错误

我正在使用增强序列化。我用: 编译-L/opt/local/lib -lboost_serialization -stdlib=libc++,但有几个(不可搜索的)错误:

我正在序列化一个std::vector<std::string>

我的boost安装有问题吗?


boost 库是包含 32 位和 64 位机器代码的通用二进制文件(所以我猜这不是问题):

sudo port install boost +universal我在 Mac OS X 10.7 上安装了 boost 。

0 投票
1 回答
877 浏览

c++ - 尝试使用 Boost 序列化库时出错

我做了一个简单的程序来重现问题:

代码编译正常,但在运行时出现以下错误:

在调试器中,我可以看到当 boost 尝试反序列化name变量时会发生错误。

谁能帮我弄清楚我做错了什么?

更新

我在 Mac OS X Lion 上并使用 GCC 4.6.2 ( g++-mp-4.6 (GCC) 4.6.2) 和 boost 1.48 版本。两者都通过 MacPorts 安装。

命令行是:

您可以在此处从 subversion 签出代码:http: //stacked-crooked.googlecode.com/svn/trunk/Playground/Serialization

更新

我在 Linux GCC 4.6.1 和 boost 1.48 上进行了测试,它运行良好。不知何故,这一定是我在 Mac 上的配置所特有的问题。

0 投票
2 回答
384 浏览

c++ - 如何为 std::stack 使用 boost::serialization?

我知道我们可以将 boost::serialization 用于 std::vector 、 list 、map 等,只要我包含相应的 boost 头文件,例如:

但是我怎么能对 std::stack 使用 boost::serialization 呢?

谢谢

0 投票
1 回答
134 浏览

c++ - 如何使用 Boost 序列化更新对象?

假设我们有一堂课std::map<string, string>。假设我们有一个它的实例,其中包含[Jon : Smith; Sara : O'Connel]. 我们将其序列化并归档。现在我们用这样的地图内容创建了它的另一个实例[Jon : AnotherSmith; Brian : Gor]。我们将其序列化并归档。现在我们有 2 个存档!)我想知道我们如何将 tham 2 反序列化为一个对象实例,我们如何设置数据从哪些存档覆盖我们想要获取:[ Sara : O'Connel; Jon : AnotherSmith; Brian : Gor]

0 投票
4 回答
1649 浏览

c++ - 把一个类的序列化放到一个DLL中

我正在寻找一个(工作)示例,用于外部序列化 DLL 中的类结构。目前我找不到任何例子。Boost 文档只是说明了一些宏,论坛和新闻组只是在讨论其解决方案的具体问题。

所以我要求一个(外部)序列化类结构的示例,如下所示。除了类代码,我还添加了一些用于序列化的代码(这不起作用,请参阅底部的错误消息)。

到目前为止,我所拥有的都是这样的代码:

序列化Foo.h

序列化Foo.cpp

序列化吧.h

序列化吧.cpp

序列化代码进入 DLL 并应在另一个使用类 Foo 和 Bar 的项目中使用。一切编译正常,但在运行时我收到消息
unregistered class - derived class not registered or exported

那么我是否使用了错误的宏?我错过了一个宏吗?上面的代码是正确的还是存在某种结构错误?也许这对很多其他人也很有用,我不认为将类的序列化放入 DLL 是非常奇特的......

0 投票
2 回答
4678 浏览

c++ - 序列化和反序列化位域

我收到了一份文档,该文档定义了一组通过串行通信通道传输和接收的消息。我想获取传入的消息并将它们反序列化为对象,并序列化我的出站消息。线路上的编码已建立且不可更改,并且由标头中的各种位域和不同的有效负载组成,例如,

我看了一下 using protobufs,但似乎已经建立了他们的 varint 编码方法。我也看过boost-serialization,但根据我到目前为止所读到的内容,编码是如何完成的并不完全清楚。

所以,有几个问题:

  • 我可以使用 boost-serialization 将我的字节流转换为对象吗?
  • 为了不必滚动我自己的序列化例程(维护混乱),是否有完成我的任务的首选机制(例如,自定义提升序列化存档,另一种我没有发现的方法)
0 投票
1 回答
1154 浏览

c++ - 是否有类似 Python 的 C++ 的 StringIO/CStringIO 之类的东西?

我正在使用 Boost 的序列化库序列化大量数据以通过网络发送。

Boost 的序列化库需要一个用于序列化和反序列化的中间文件。正在传输的数据量使执行所有这些操作变得很尴尬。把事情记在心里会好得多。

C++ 中是否有任何类似于 Python 的 cStringIO/StringIO 的东西可以用来伪造 Boost 的序列化?

提前致谢。

0 投票
1 回答
886 浏览

c++ - 提升序列化和命名空间

我是使用 Boost 序列化的新手。我正在使用 xml 序列化和非侵入式版本。我一步一步地按照教程(来自 Boost 网站)进行操作,我的代码运行良好。

当我将我的类(代码分为 .h 和 .cpp 以及一个 main.cpp 文件)放在命名空间(ns_mytests) 中时,问题就出现了。在这种情况下,编译器(g++)会抱怨,我有以下错误:

可以肯定我做错了什么,但我找不到我的错误。

任何帮助表示赞赏。

谢谢,西叉