Повышение нагрузки :: uuid из байтов в переполнении стека

я использую .data() получить массив данных 16 байтов.
Позже я записываю его в файл и хочу загрузить его обратно в uuid переменная.
Должен ли я просто выполнить копирование памяти в переменную как: (c ++ 11)

boost::uuids::uuid uuid = boost::uuids::random_generator()();
char[16] data;
std::copy_n(&uuid, 16, data); // copy to data
std::copy_n(data, 16, &uuid); // copy from data (?)

1

Решение

Во-первых, всякий раз, когда вы задаетесь вопросом, как использовать классы Boost, есть документы:

http://www.boost.org/doc/libs/1_58_0/libs/uuid/uuid.html

{ // example using memcpy
unsigned char uuid_data[16];
// fill uuid_data

boost::uuids::uuid u;

memcpy(&u, uuid_data, 16);
}

{ // example using aggregate initializers
boost::uuids::uuid u =
{ 0x12 ,0x34, 0x56, 0x78
, 0x90, 0xab
, 0xcd, 0xef
, 0x12, 0x34
, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef
};
}

поскольку memcpy работы я ожидаю copy_n будет работать также.

2

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector