10 std::random_device rd;
11 std::mt19937_64 gen(rd());
12 std::uniform_int_distribution<uint64_t> dis;
13 uint64_t a = dis(gen);
14 uint64_t b = dis(gen);
15 std::ostringstream ss;
16 ss << std::hex << std::setfill(
'0') << std::setw(8)
17 <<
static_cast<uint32_t
>(a >> 32) << std::setw(4)
18 <<
static_cast<uint16_t
>((a >> 16) & 0xFFFF) << std::setw(4)
19 <<
static_cast<uint16_t
>(a & 0xFFFF) << std::setw(4)
20 <<
static_cast<uint16_t
>(b >> 48) << std::setw(12)
21 << (b & 0xFFFFFFFFFFFFULL);
22 std::string s = ss.str();
25 return s.substr(0, 8) +
"-" + s.substr(8, 4) +
"-" + s.substr(12, 4) +
"-" +
26 s.substr(16, 4) +
"-" + s.substr(20, 12);