この単純なクラスをシリアル化しようとしています:
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 へのポイティング。これを有効にするブーストシリアル化の方法は、追加することです
#include <boost/uuid/uuid_serialize.hpp>
しかし、これはそのままではシリアルには機能しません。穀物の文書によると
シリアル アーカイブは std::ostream または std::istream オブジェクトのいずれかで動作します。
だから私は定義されているが運がないヘッダーを追加しようとしました
#include <boost/uuid/uuid_io.hpp>