2010-08-10 109 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