【发布时间】:2016-12-31 20:59:58
【问题描述】:
我正在使用以下代码尝试将对象序列化/反序列化为二进制数据:
MyDTO dto1;
std::ostringstream os(std::stringstream::binary);
{
cereal::BinaryOutputArchive oarchive(os); // Create an output archive
oarchive(dto1);
}
MyDTO dto2;
std::istringstream is(os.str(), std::stringstream::binary);
{
cereal::BinaryInputArchive iarchive(is); // Create an input archive
try {
iarchive(dto2);
}
catch (std::runtime_error e) {
e.what();
}
}
代码运行时,捕获到异常并显示消息:
"Failed to read 8 bytes from input stream! Read 0"
谁能帮我理解怎么回事?
【问题讨论】:
-
你应该向我们展示输入文件
-
没有输入文件,我正在读写字符串。
-
istringstream 构造已修复,现在似乎可以正常工作了。
标签: c++ serialization deserialization cereal