【发布时间】:2015-01-15 07:57:19
【问题描述】:
尝试序列化这个简单的类:
class Data
{
public:
Data();
Data(boost::uuids::uuid id);
Data(const Data&) = delete;
Data& operator=(const Data&) = delete;
inline boost::uuids::uuid getGuid() { return guid; }
template <class Archive>
void serialize(Archive & ar)
{
ar(guid);
}
private:
boost::uuids::uuid guid;
};
但我收到此错误消息
error C2338: Trying to serialize an unserializable type with an output archive.
指向 uuid。启用此功能的 boost 序列化方法是添加
#include <boost/uuid/uuid_serialize.hpp>
但这不适用于开箱即用的谷物。谷物文件说
谷物档案在 std::ostream 或 std::istream 对象上运行。
所以我尝试在已定义但没有运气的地方添加标题
#include <boost/uuid/uuid_io.hpp>
【问题讨论】:
-
Boost 不是麦片,所以,你应该只用麦片写
boost::uuid的序列化。
标签: c++ boost boost-uuid cereal