Pergunta

Acabei de começar a usar o boost em c++ e só queria fazer algumas perguntas relacionadas aos uuids.

Estou carregando um arquivo que exige que eu conheça os uuids para poder vincular alguns objetos.Por esse motivo, estou tentando escrever meus próprios uuids, mas não tenho certeza se há alguma condição especial para as strings, etc., pois as strings que estou usando (geralmente algo básico) não estão funcionando.Alguém pode me apontar na direção certa?Eu tentei usar um gerador de strings, mas sem sucesso até agora, então presumo que há algo errado com minhas strings (que atualmente são apenas palavras aleatórias).

Aqui está um pequeno exemplo de coisa, não é possível fornecer o 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());
    }
}
Foi útil?

Solução

Interpretei sua pergunta como "Preciso de uma amostra".Aqui está um exemplo que mostra

  • leitura
  • escrita
  • gerando
  • comparando

uuids com Boost Uuid.

#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);
    }
}

Veja Ao vivo no Coliru

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top