【问题标题】:how to serialize boost::uuids::uuid如何序列化 boost::uuids::uuid
【发布时间】:2012-06-01 02:49:17
【问题描述】:

我目前在一个项目中使用 boost::uuids::uuid,我想序列化包含在 boost::uuids::uuid 中的对象。我尝试了下面的简单示例,但出现错误:

/usr/include/boost/archive/basic_text_oprimitive.hpp:92: 错误:'operator*)this)->boost::archive 中不匹配::basic_text_oprimitive >::os

如果有人可以帮助我,我会非常感激。

#include <fstream>
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_serialize.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>

class classA {
public:
    classA() : id(boost::uuids::random_generator()()) {}
private:
    friend class boost::serialization::access;
    boost::uuids::uuid id;
    template <class Archive>
    void serialize(Archive& ar, const unsigned int version) {
        ar & id;
    }
};

int main(void) {
    classA a;
    std::ofstream ofs("uuid.txt");
    boost::archive::text_oarchive oa(ofs);
    oa << a;
    ofs.close();
    return 0;
}

【问题讨论】:

  • 我发现必须包含头文件#include 才能序列化boost::uuids::uuid。我在网上搜索了很多,找不到关于序列化 boost::uuids::uuid; 的示例我希望这可以帮助某人。
  • 感谢 Murat,您的评论帮助了我。

标签: serialization boost uuid


【解决方案1】:

包括 &lt;boost/uuid/uuid_serialize.hpp&gt; 以启用 uuid 的序列化。 http://www.boost.org/doc/libs/1_42_0/libs/uuid/uuid.html#boost/uuid/uuid_serialize.hpp

【讨论】:

    猜你喜欢
    • 2018-12-20
    • 2013-05-04
    • 2015-01-15
    • 2016-08-23
    • 2014-04-29
    • 2015-09-09
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多