2012-05-25 18 views
7

Attualmente sto usando boost :: :: uuid UUID in un progetto e voglio serializzare oggetti contenent boost :: :: uuid UUID. Ho provato il semplice esempio di sotto, ma ottengo un errore:come serializzare boost :: :: UUID UUID

/usr/include/boost/archive/basic_text_oprimitive.hpp:92: errore: non è partita per 'operatore < <' in '((filmati di boost ::: : basic_text_oprimitive> *) questo) -> boost :: :: archivio basic_text_oprimitive> :: os < < t'

vorrei davvero appriciate se qualcuno mi potrebbe aiutare.

#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

Ho scoperto che il file di intestazione #include deve essere incluso per serializzare boost :: uuids :: uuid. Ho cercato molto nel web e non poteva trovare un esempio di serializzazione boost :: :: UUID UUID; Spero che questo possa aiutare qualcuno. –

+0

Grazie Murat, il tuo commento mi ha aiutato. –

risposta