web-dev-qa-db-fra.com

Exemple de génération d'UUID à l'aide de Boost en C ++

Je veux générer uniquement des UUID aléatoires, car il est juste important que les instances de mon programme aient des identifiants uniques. J'ai examiné Boost UUID , mais je ne parviens pas à générer l'UUID car je ne comprends pas quelle classe et quelle méthode utiliser.

J'apprécierais que quelqu'un me donne un exemple de la manière d'y parvenir.

87
Nikola

Un exemple de base:

#include <boost/uuid/uuid.hpp>            // uuid class
#include <boost/uuid/uuid_generators.hpp> // generators
#include <boost/uuid/uuid_io.hpp>         // streaming operators etc.

int main() {
    boost::uuids::uuid uuid = boost::uuids::random_generator()();
    std::cout << uuid << std::endl;
}

Exemple de sortie:

7feb24af-fc38-44de-bc38-04defc3804de

151
Georg Fritzsche

La réponse de Georg Fritzsche est correcte mais peut-être un peu trompeuse. Vous devez réutiliser le générateur si vous avez besoin de plus d'un uuid. C'est peut-être plus clair de cette façon:

#include <iostream>

#include <boost/uuid/uuid.hpp>            // uuid class
#include <boost/uuid/uuid_generators.hpp> // generators
#include <boost/uuid/uuid_io.hpp>         // streaming operators etc.


int main()
{
    boost::uuids::random_generator generator;

    boost::uuids::uuid uuid1 = generator();
    std::cout << uuid1 << std::endl;

    boost::uuids::uuid uuid2 = generator();
    std::cout << uuid2 << std::endl;

    return 0;
}
28
Nikko