Domanda

Sto lavorando in una classe dirigente, che contiene i percorsi stringa che rappresenta. Da queste stringhe, mi piacerebbe avere un boost.uuid utilizzando un codice come questo:

m_log->addMessage("Generating UUID from path",ZEL_APPENDER,LOGLEVEL_DEBUG);
boost::uuids::string_generator str_gen;
boost::uuids::uuid generatedUUID = str_gen(full_path);

assert(generatedUUID.is_nil() == false);
char msg[500];
snprintf(msg,500,"Successfully generated UUID %s from path",boost::uuids::to_string(generatedUUID).c_str());
m_log->addMessage(msg,ZEL_APPENDER,LOGLEVEL_DEBUG);

Ma sfortunatamente, ho scoperto che stringa generata è sempre lo stesso, anche se percorso_completo è spettacolo diverso.

Inoltre, quando provo con un semplice esempio ultra in questo modo:

 string s1("helloworld");
 boost::uuids::string_generator str_gen;
 boost::uuids::uuid generatedUUID = str_gen(s1);
 cout << "s1: " << boost::uuids::to_string(generatedUUID) << endl;

Boost genera un'eccezione di runtime dicendo che stringa non è valido. Potresti aiutarmi? L'unica fonte di documentazione che ho trovato è qui

Grazie in anticipo.

È stato utile?

Soluzione

In base alla nell'intestazione la codice non genera hash ma invece analizza un UUID-as-stringa e lo converte in un uuid.

Sembra che siete alla ricerca di un hash in base al percorso, che non è la stessa di un UUID. UUID sono destinati ad essere unico, il che implica che per esempio uno potrebbe avere percorsi dello stesso valore memorizzato in un contenitore associativo sotto diversi UUID.

Si potrebbe essere meglio guardando Boost.Hash .

Altri suggerimenti

Credo che si dovrebbe leggere http://www.boost.org/doc/libs/1_59_0/libs/uuid/uuid.html#boost/uuid/string_generator.hpp con attenzione. Si utilizza String Generator, ma nell'articolo La classe boost::uuids::string_generator genera un uuid da una stringa. se si desidera utilizzare boost::uuids::string_generator, è necessario utilizzare corretta stringa di formato nel vostro gen().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top