Строка для повышения:: 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);
}
}
Посмотри это в прямом эфире на Колиру