我在一个管理器类中工作,它包含表示路径的字符串。从这个字符串中,我想要一个 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 抛出一个运行时异常,指出该字符串无效。你可以帮帮我吗?我发现的唯一文档来源是这里
提前致谢。