2012-05-25 18 views
7

Actualmente estoy usando boost :: uuids :: uuid en un proyecto y quiero serializar objetos que contienen boost :: uuids :: uuid. Probé el sencillo ejemplo de abajo, pero me da un error:cómo serializar boost :: uuids :: uuid

/usr/include/boost/archive/basic_text_oprimitive.hpp:92: error: no puede competir con 'operador < <' en '((Archivo de impulsar ::: : basic_text_oprimitive> *) this) -> boost :: archive :: basic_text_oprimitive> :: os < < t '

Realmente me gustaría saber si alguien podría ayudarme.

#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

Descubrí que el archivo de encabezado #include se debe incluir para serializar el boost :: uuids :: uuid. Busqué mucho en la web y no pude encontrar un ejemplo sobre la serialización de boost :: uuids :: uuid; Espero que esto pueda ayudar a alguien. –

+0

Gracias Murat, tu comentario me ayudó. –

Respuesta