Я работаю в классе менеджера, который содержит строку, представляющую пути. Из этой строки я хотел бы получить 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 генерирует исключение времени выполнения, сообщающее, что строка недопустима. Не могли бы вы помочь мне? Единственный источник документации, который я нашел, это здесь
Заранее спасибо.