18 static thread_local std::mt19937 generator(std::random_device{}());
19 std::uniform_int_distribution<int> dist(0, 255);
21 std::array<uint8_t, 16> bytes{};
22 for (
auto& b : bytes) {
23 b =
static_cast<uint8_t
>(dist(generator));
27 bytes[6] =
static_cast<uint8_t
>((bytes[6] & 0x0F) | 0x40);
28 bytes[8] =
static_cast<uint8_t
>((bytes[8] & 0x3F) | 0x80);
30 std::ostringstream stream;
32 for (
size_t i = 0; i < bytes.size(); ++i) {
35 stream << static_cast<int>(bytes[i]);
36 if (i == 3 || i == 5 || i == 7 || i == 9) {