从c++中的字节加载提升::uuid

Load boost::uuid from bytes in c++

本文关键字:加载 uuid 字节 c++      更新时间:2023-10-16

我使用.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 (?)

首先,每当你想知道如何使用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也会工作。