问题标签 [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.
c++ - boost.serialization - 免费版本和基类实现
我有一个“生成器”类,它基本上构造了它的子类。要使用这个东西,我只需将它子类化并传递正确的参数来构建我想要构建的对象。我想序列化这些东西,因为所有数据都在基础中,所以没有充分的理由为每个子类这样做。这是我的例子:
如果可能的话,我希望免费版本能够工作。是吗?
上面的版本出现了关于序列化不是 test_derived 成员的错误。
c++ - 帮助编译和使用 boost c++ 库
我正在开发一个 C++ 项目,我想在其中使用 boost 的序列化库。我从 boost 的主页下载并安装了最新的 boost 库。
当我尝试编译并运行 boost 的演示序列化示例之一时,我得到了各种看起来像这样的错误:
我是 C++ 的新手,所以我将不胜感激。
谢谢
visual-c++ - 是否可以将 boost::serialization 与托管类一起使用?
我们有很多使用boost::serialization完美序列化的原生 c++ 类。
现在我们想将它们的一些成员字段更改为property,以便我们可以在PropertyGrids中使用它们。当我们将类定义更改为ref class X时,我们得到了大量这样的编译错误:
#1:
error C2893: Failed to specialize function template 'boost::archive::text_oarchive &boost::archive::detail::interface_oarchive<Archive>::operator <<(T &)' d:\someAddress\someFile.cpp 58
#2:
error C2784: 'std::basic_ostream<_Elem,_Traits> &std::operator <<(std::basic_ostream<_Elem,_Traits> &,const std::_Smanip<_Arg> &)' : could not deduce template argument for 'std::basic_ostream<_Elem,_Traits> &' from 'boost::archive::text_oarchive' d:\someAddress\someFile.cpp 58
我们这里有很多小类,所以为每个类编写一个包装器会很痛苦!
这是我们使用的示例类:
这是主要的测试代码:
甚至可以将boost::serialization与托管类一起使用吗?
编辑:
如果我们将类使用代码更改为:
那么我们只得到 1 个错误:
error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>' D:\path\to\Boost\boostw\boost\archive\detail\check.hpp 60
c++ - 将 boost 序列化与虚拟基类一起使用时,是什么导致 C4250(类通过支配地位继承成员)?
VC++ 编译器警告C4250的含义对我来说很清楚。(但请参阅此处以获取解释。) 'class1' : inherits 'class2::member' via dominance
我目前遇到的问题是在序列化具有带有 boost::serialization (1.44.0)的抽象基类的类层次结构时收到此警告。
请注意,我的类 没有形成任何可能导致此警告的菱形继承层次结构,但该警告是由boost::detail::is_virtual_base_of_impl<...>
序列化派生类实例时的实例化引起的。(这似乎是使用来自 Boost.TypeTraits 的is_virtual_base_of 。)
这是在 Visual Studio 2005 上重现警告的最小代码示例。请注意,代码应按原样放置到一个 cpp 文件中,并且应该可以编译。
还要注意代码中我用触发警告的注释标记的两点。如果BOOST_CLASS_EXPORT
未使用,则不会触发警告,但更有趣的是,如果派生类不使用继承,也不会触发警告!(所以也许我毕竟不了解C4250。)virtual
这是编译器警告(啊!):
c++ - 提升序列化 - 序列化 std::tr1::shared_ptr?
Boost::Serialization 内置了对boost::shared_ptr<>
.
有没有办法使用这种支持std::tr1::shared_ptr<>
呢?
是否可以从std::tr1::shared_ptr<>
to 转换boost::shared_ptr<>
?
c++ - 序列化指向没有默认构造函数的类的指针时无法覆盖 save_construct_data
我正在尝试遵循此示例http://www.boost.org/doc/libs/1_42_0/libs/serialization/doc/serialization.html#constructors但我不断收到错误。按照示例,我在尝试访问私有变量时遇到错误(很公平):
但是,如果我将 save_construct_data 添加为好友,则会出现歧义错误:
我可以将函数定义移动到朋友声明中,但这很难看。
接下来我应该尝试什么?
谢谢,杰恩
c++ - 序列化 variables_map
如何序列化/反序列化 boost::program_options::variables_map?我找不到已经实现的序列化函数,也不知道 variables_map 中有哪些函数可以用来提取和重新组装地图。
c++ - Boost:Serialization:谁来清理反序列化的数据?
我正在序列化对象的原始指针并将其发送到另一个应用程序。
反序列化时,我得到了另一个原始指针。这意味着 Boost::Serialization 在内部构造这个指针后面的对象。我现在很好奇谁拥有该对象的所有权,以及 Boost 是否会删除该对象,如果不再需要它。
一些可能更好地说明问题所在的代码:
serialization - boost::serialization 多态类型初始化
我有一个基类和 4 个派生类。我将所有派生类存储在基类指针类型的向量中。在第一次初始化期间,我使用它们的构造函数以不同的方式创建每个派生类型。基本上,他们每个人的 ctor 中都有不同的参数类型。(我必须提供一个受保护的默认 ctor 才能使 BOOST_CLASS_EXPORT 编译,但这是另一回事)。我不/不能保存这些派生类的所有成员(用 ctor 填充)。
现在,当我使用 boost::serialize 从磁盘加载对象时,这些成员(未序列化并且特定于每个派生类型)被销毁。而且,我想不出重新初始化这些派生类型的方法,因为我只存储基类指针。
我真正需要的是能够部分加载我的派生类型(指针),而不删除它们的所有内容。
有没有办法克服这个问题,也许是一个神奇的提升定义或函数调用?否则,根本不可能使用 boost::serialize 进行多态性。我应该遗漏一些东西,希望我能足够好地定义我的问题。
c++ - C ++ Boost TCP通道上的序列化对象,双向通信不起作用
我有一个班级,一个非常愚蠢的班级。此类的对象,我想通过 tcp 使用 asio by boost 发送它们。我的班级正确地与提升的东西建立了友谊并实现了方法序列化......
好吧,我希望客户端连接到服务器,将我的对象发送给它,然后服务器发回同一类的另一个对象。
我试图这样做:
在服务器中:
数据是可序列化的类。
在客户端:
好吧,它不起作用。它以某种方式阻塞。
这是古玩,因为问题是这种双向方案,如果我消除线 Q,W,X,Y 它工作!你知道如何解决这个问题吗?