2012-05-25 68 views
7

我目前在項目中使用boost :: uuids :: uuid,我想序列化包含boost :: uuids :: uuid的對象。我嘗試了下面的簡單示例,但出現錯誤:如何序列化boost :: uuids :: uuid

/usr/include/boost/archive/basic_text_oprimitive.hpp:92:錯誤:'(操作符< <'in'((boost :: archive: :basic_text_oprimitive> *)this) - > boost :: archive :: basic_text_oprimitive> :: os < < t'

我真的很會說如果有人能幫助我。

#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; 
} 
+3

我發現,頭文件的#include <升壓/ UUID/uuid_io.hpp>必須包含序列化的boost ::的UUID :: UUID。我在網上搜索了很多,無法找到序列化boost :: uuids :: uuid的示例;我希望這可以幫助某人。 –

+0

感謝穆拉特,你的評論幫助了我。 –

回答