2010-08-10 15 views

Respuesta

36

Usted puede hacer esto un poco más fácil el uso de impulso :: lexical_cast que utiliza un std :: stringstream bajo el capó.

#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

Puede incluir <boost/uuid/uuid_io.hpp> y luego usar los operadores para convertir un uuid en std::stringstream. A partir de ahí, es una conversión estándar a const char* según sea necesario.

Para obtener más información, consulte 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(); 

(Para más detalles sobre por qué necesita la cadena "tmp", see here.)

1

utiliza las funciones de flujo de impulso/UUID/uuid_io.hpp.

boost::uuids::uuid u; 

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

Por si acaso, también hay boost::uuids::to_string, que funciona de la siguiente manera:

#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

Para las personas que trabajan con versiones antiguas de impulso: Este método se introduce en 1,44. Consulte 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

+1

This debería ser la respuesta correcta, en mi humilde opinión. –