Я использую этот код для создания UUID из boost:
boost::uuids::random_generator gen;
boost::uuids::uuid uuidId = gen();
string randomUUID = boost::lexical_cast<std::string>(uuidId);
std::remove( randomUUID.begin(), randomUUID.end(), '-');
randomUUID = "0x" + randomUUID;
Это дает мне шестнадцатеричные числа, например: «0xCC5B9F6946EF4448A89EDB2042E0B084».
Мой вопрос: как преобразовать эту строку (128-битное шестнадцатеричное число) в 128-битную длину ИЛИ 64-битную длину (это нормально, чтобы потерять более высокие данные)?
Стандарт C atoll и C++ std::stoll в этом случае не помогают.
UUID предпочтительнее для случайного качества генерации.
Спасибо!