coup de pouce Convert :: uuid char *
Question
Je cherche à convertir un boost :: uuid à un const char *. Quelle est la syntaxe correcte pour la conversion?
La solution
Vous pouvez faire un peu plus facile en utilisant boost :: lexical_cast qui utilise un std :: stringstream sous le capot.
#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();
Autres conseils
Juste au cas où, il y a aussi boost::uuids::to_string
, qui fonctionne comme suit:
#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();
Vous pouvez inclure <boost/uuid/uuid_io.hpp>
puis utiliser les opérateurs pour convertir un UUID en std::stringstream
. De là, il est une conversion standard à un const char*
au besoin.
Pour plus de détails, voir la deuxième entrée et de sortie de la documentation UUID .
std::stringstream ss;
ss << theUuid;
const std::string tmp = ss.str();
const char * value = tmp.c_str();
(Pour plus de détails sur la raison pour laquelle vous avez besoin de la chaîne "tmp",
Vous utilisez les fonctions de flux dans boost / UUID / uuid_io.hpp. boost::uuids::uuid u;
std::stringstream ss;
ss << u;
ss >> u;