2010-08-10 76 views

回答

36

你可以使用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(); 
10

您可以包含<boost/uuid/uuid_io.hpp>,然后使用操作员将uuid转换为std::stringstream。从那里,这是根据需要标准转换为const char*

有关详细信息,请参见the Input and Output second of the Uuid documentation

std::stringstream ss; 
ss << theUuid; 

const std::string tmp = ss.str(); 
const char * value = tmp.c_str(); 

(有关为什么需要 “TMP” 字符串的详细信息,see here。)

1

您在升压/ UUID/uuid_io.hpp使用流功能。

boost::uuids::uuid u; 

std::stringstream ss; 
ss << u; 
ss >> u; 
26

以防万一,也有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(); 
+2

对于人与古升压版本工作:这个方法在1.44介绍。见http://www.boost.org/doc/libs/1_43_0/boost/uuid/uuid_io.hpp http://www.boost.org/doc/libs/1_44_0/boost/uuid/uuid_io.hpp – user1556435 2016-02-17 14:44:01

+1

This应该是正确的答案,恕我直言。 – 2016-06-22 18:36:52