在 Java UUID 类中,有一种方法可以设置上限和下限 long 来为 UUID 创建特定值。
UUID test(-1, -1);
将生成 UUID:ffffffff-ffff-ffff-ffff-ffffffffffff
是否有类似的方法可以在 C++ 中使用 BOOST UUID 创建一个,然后创建它的字符串版本并将其转换回 UUID?
在 Java UUID 类中,有一种方法可以设置上限和下限 long 来为 UUID 创建特定值。
UUID test(-1, -1);
将生成 UUID:ffffffff-ffff-ffff-ffff-ffffffffffff
是否有类似的方法可以在 C++ 中使用 BOOST UUID 创建一个,然后创建它的字符串版本并将其转换回 UUID?
将整数传递给构造函数将是模棱两可的,因为您不知道它们会生成什么 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;