Строка для повышения:: UUID преобразования

Я только начал использовать boost в C++ и просто хотел задать пару вопросов, касающихся uuids.

Я загружаю в файл, который требует, чтобы я знал uuids, чтобы я мог связать некоторые объекты вместе. По этой причине я пытаюсь написать свои собственные uuids, но я не уверен, есть ли какие-либо особые условия для строк и т. Д., Поскольку строки, которые я использовал (обычно что-то базовое), не работают. Может кто-то указать мне верное направление? Я пытался использовать генератор строк, но пока безрезультатно, поэтому я предполагаю, что что-то не так с моими строками (которые в настоящее время являются просто случайными словами).

Вот краткий пример такого рода вещей, который не может дать реальный код:

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

1 ответ

Решение

Я воспринял ваш вопрос как "Мне нужен образец". Вот пример, который показывает

  • чтение
  • пишу
  • порождающий
  • Сравнение

UUID с Boost.

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

Посмотри это в прямом эфире на Колиру

Другие вопросы по тегам