Czekam na konwersję boost :: uuid na const char *. Jaka jest prawidłowa składnia konwersji?Zwiększenie liczby konwersji :: uuid na char *
25
A
Odpowiedz
36
Można zrobić to nieco łatwiejsze przy użyciu boost :: lexical_cast który korzysta std :: stringstream pod maską.
#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
Można dołączyć <boost/uuid/uuid_io.hpp>
, a następnie użyć operatorów do konwersji uuid na std::stringstream
. Od tego momentu jest to standardowa konwersja do const char*
w razie potrzeby. Aby uzyskać szczegółowe informacje, zobacz .
std::stringstream ss;
ss << theUuid;
const std::string tmp = ss.str();
const char * value = tmp.c_str();
(Szczegółowe informacje na temat, dlaczego trzeba się "TMP" ciąg, see here.)
1
użyć funkcji strumieniowych w doładowania/UUID/uuid_io.hpp.
boost::uuids::uuid u;
std::stringstream ss;
ss << u;
ss >> u;
26
Tylko w przypadku, istnieje również boost::uuids::to_string
, który działa w następujący sposób:
#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();
Dla osób pracujących z dawnych wersjach doładowania: Metoda ta jest wprowadzana w 1,44. Zobacz 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
To powinna być poprawna odpowiedź, IMHO. –