Pregunta

Acabo de empezar a usar Boost en C ++ y solo quería hacerle un par de preguntas relacionadas con UUIDS.

Estoy cargando en un archivo que requiere que conozco los uuids para que pueda unir algunos objetos.Por esta razón, estoy tratando de escribir mis propios uuidos, pero no estoy seguro de si hay alguna condición especial para las cadenas, etc., ya que las cuerdas que he estado usando (generalmente algo básico) no funcionan.¿Alguien puede apuntarme en la dirección correcta?He intentado usar un generador de cadenas, pero en vano hasta ahora, así que asumo que hay algo mal con mis cadenas (que actualmente han sido palabras aleatorias).

Aquí hay un tipo de cosa corta, no se puede dar el código real:

void loadFiles(std::string xmlFile);

void linkObjects(custObj network)
{
    for (int i = 0; i < network->getLength(); i++)
    {
        network[i]->setId([boost::uuid]);  
        if (i > 0)
            network[i]->addObj(network[i-1]->getId());
    }
}

¿Fue útil?

Solución

Tomé tu pregunta como "Necesito una muestra".Aquí hay una muestra que muestra

  • leyendo
  • escribiendo
  • generando
  • comparando

uuids con UUID de impulso.

#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/uuid/random_generator.hpp>
#include <boost/lexical_cast.hpp>

using namespace boost::uuids;

int main()
{
    random_generator gen;

    for (int i = 0; i < 10; ++i)
    {
        uuid new_one = gen(); // here's how you generate one

        std::cout << "You can just print it: " << new_one << "; ";

        // or assign it to a string
        std::string as_text = boost::lexical_cast<std::string>(new_one);

        std::cout << "as_text: '" << as_text << "'\n";

        // now, read it back in:
        uuid roundtrip = boost::lexical_cast<uuid>(as_text);

        assert(roundtrip == new_one);
    }
}

verlo vivir en coliru

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top