Идея UUID заключается в том, что - в зависимости от того, как они генерируются, - существует столько значений , представляемых с помощью 122-бит *, что вероятность случайные столкновения - опять же, в зависимости от того, как они генерируются - очень, очень, очень, очень, очень, очень, очень, очень, очень, очень маленькие.
Выдержка из Википедии для UUID версии 4 (Leach-Salz Random):
Другими словами, только после генерирования 1 миллиарда UUID каждую секунду в течение следующих 100 лет вероятность создания только одного дубликата составит около 50% . Вероятность получения одного дубликата составила бы около 50%, если бы каждый человек на земле имел 600 миллионов UUID.
... однако эти вероятности сохраняются только тогда, когда UUID генерируются с использованием достаточной энтропии.
Конечно, существуют другие схемы генерации UUID и «общеизвестные GUID», не все из которых могут подходить для «глобально уникального» использования. (Кроме того, неспецифические идентификаторы UUID, как правило, плохо работают с первичными / кластерными ключами из-за фрагментации при вставке: SQL Server имеет NEWSEQUENTIALID , чтобы помочь с этой проблемой.)
Счастливого кодирования.
* В UUID может быть не более 128 битов, однако некоторые версии UUID используют некоторые биты внутренне. Я не знаю, что использует boost, но я подозреваю это тоже UUIDv4.