我想将boost::uuid转换为const char*。 转换的正确语法是什么?
如果需要的话,还有 boost::uuids::to_string
函数可用,其工作方式如下:
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_io.hpp>
boost::uuids::uuid a = ...;
const std::string tmp = boost::uuids::to_string(a);
const char* value = tmp.c_str();
您可以使用 boost::lexical_cast 更轻松地完成此操作,该函数在内部使用 std::stringstream 进行转换。
#include <boost/lexical_cast.hpp>
#include <boost/uuid/uuid_io.hpp>
const std::string tmp = boost::lexical_cast<std::string>(theUuid);
const char * value = tmp.c_str();
<boost/uuid/uuid_io.hpp>
,然后使用运算符将uuid转换为std::stringstream
。从那里,按需要进行标准转换为const char*
。std::stringstream ss;
ss << theUuid;
const std::string tmp = ss.str();
const char * value = tmp.c_str();
(关于为什么需要“tmp”字符串的详细信息,请参见这里。)
您可以在boost/uuid/uuid_io.hpp中使用流函数。
boost::uuids::uuid u;
std::stringstream ss;
ss << u;
ss >> u;
boost::uuids::uuid u;
const char* UUID = boost::uuids::to_string(u).c_str();