从 C++ 中的字节加载 boost::uuid
Load boost::uuid from bytes in c++
我用.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
也有效。
我用.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
也有效。