私は、パスを表す文字列を保持するマネージャー クラスで作業しています。この文字列から、次のようなコードを使用して boost.uuid を作成したいと思います。
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);
しかし、残念なことに、full_path が異なっていても、生成される文字列は常に同じであることがわかりました。
また、次のような超単純な例を試してみると:
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 は、文字列が無効であることを示す実行時例外をスローします。私たちを手伝ってくれますか?私が見つけたドキュメントの唯一のソースはここにあります
前もって感謝します。