Saltar al contenido

Convertir boost :: uuid a char *

Solución:

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();

Puede hacer esto un poco más fácilmente usando boost :: lexical_cast que usa un std :: stringstream debajo del 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();

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

Para obtener más detalles, consulte la segunda entrada y salida de la documentación de Uuid.

std::stringstream ss;
ss << theUuid;

const std::string tmp = ss.str();
const char * value = tmp.c_str();

(Para obtener detalles sobre por qué necesita la cadena “tmp”, consulte aquí).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *