Bir boost :: uuid bir const char * dönüştürmek için arıyorum. Dönüşüm için doğru sözdizimi nedir?Dönüştürme boost :: uuid için char *
25
A
cevap
36
Sen kaputun altında boost :: Bir std kullanan lexical_cast :: stringstream kullanarak bu biraz daha kolay yapabilir. Her ihtimale karşı
#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>
'u dahil edip, bir uuid'i std::stringstream
'a dönüştürmek için operatörleri kullanabilirsiniz. Oradan, gerektiği gibi const char*
standart bir dönüşüm.
Ayrıntılar için bkz. 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();
(siz "tmp" dizesini neden ihtiyaç ile ilgili ayrıntılar için, see here.)
1
Sen boost/uuid/uuid_io.hpp içinde dere işlevlerini kullanın.
boost::uuids::uuid u;
std::stringstream ss;
ss << u;
ss >> u;
26
, aşağıdaki gibi çalışır, ayrıca boost::uuids::to_string
vardır: eski boost sürümleri ile çalışan insanlar için
#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();
: Bu yöntem 1.44 tanıtıldı. Bkz. 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
Bu Doğru cevap olmalı, IMHO. –