提升序列化/反序列化存档"stream error"异常
Boost serialization/deserialization archive "stream error" exception
我有以下问题。
我有一个名为 A.h 的文件和一个名为 B.h 的文件,每个文件都包含如下结构:(两个类中的结构不同)
struct Base
{
friend class access;
template <typename Archive>
void serialize(Archive& ar,const unsigned int version)
{
ar & fieldLength;
ar & fieldMD;
ar & fieldTime_Stamp;
}
public:
unsigned int fieldLength;
unsigned int fieldMD;
unsigned int fieldTime_Stamp;
virtual void f(){} //to be polymorphic the struct
};
struct Derived:public Base
{
...
}
所以我以经典的方式序列化结构:
....
std::ostringstream archive_stream;
boost::archive::text_oarchive archive(archive_stream);
archive.register_type(static_cast<Derived*>(NULL))
archive <<p; // where p is a pointer to Base
现在的问题...在反序列化方面,我遵循相同的(反向)过程......如果我单独反序列化 A.h 中的结构(不包括在项目 B.h 中)和 B.h 中的结构(不包括在项目 A.h 中)都有效......但是如果我在项目中都包含这两个类,则反序列化适用于一个类,但在指令"archive>> m;"中为另一个类抛出"流错误异常"......似乎注册类或类似的东西发生了冲突......有什么想法吗?谢谢...
是否已序列化派生类序列化函数中的基本数据?
ar & boost::serialization::make_nvp( "base", boost::serialization::base_object< Base >( *this ) );
我不知道这是否有帮助,但我使用
BOOST_CLASS_IMPLEMENTATION(x, boost::serialization::object_serializable);
BOOST_CLASS_TRACKING(x, boost::serialization::track_never)
将类注册为可序列化。希望有帮助:3
相关文章:
- "error: no matching function for call to"构造函数错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 为什么stream::忽略未按预期工作
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- C++ "error: invalid use of void expression"
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 从不同目录执行时"symbol lookup error:",否则从构建目录执行时按预期工作
- 对象声明中的模板"error: expected expression"
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- OpenCV RTP-Stream with FFMPEG
- stream .pdf error
- 提升序列化在特定文件大小后抛出"input stream error"
- 提升序列化/反序列化存档"stream error"异常
- cin stream error