从c ++中的字节加载boost :: uuid

时间:2015-06-29 08:32:19

标签: c++ boost boost-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 个答案:

答案 0 :(得分:2)

首先,每当你发现自己想知道如何使用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也能正常工作。