Boost :: UUID设置特定值

问题描述 投票:0回答:1

在Java UUID类中,有一种方法可以设置上下长度以为UUID创建特定值。

UUID test(-1, -1);

将生成UUID:ffffffff-ffff-ffff-ffff-ffffffffffff

是否有类似的方法在C ++中用BOOST UUID创建一个,然后创建它的字符串版本并将其转换回UUID?

c++ boost uuid boost-uuid
1个回答
-1
投票

将整数传递给构造函数将是模棱两可的,因为您不知道它们将生成什么UUID,因为整数在不同平台上具有不同的字节表示形式。当然,全1(如-1)和全零或多或少使它变得显而易见,但是其他整数值呢?

解决方案是从字符串或字节构造UUID。

boost::uuids::uuid u1{{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }};

boost::uuids::uuid u2 = boost::uuids::string_generator()("ffffffff-ffff-ffff-ffff-ffffffffffff");

std::istringstream strm("ffffffff-ffff-ffff-ffff-ffffffffffff");
boost::uuids::uuid u3;
strm >> u3;
© www.soinside.com 2019 - 2024. All rights reserved.