From: Matthias Troyer (troyer_at_[hidden])
Date: 2007-06-12 04:05:13


On Jun 4, 2007, at 7:18 PM, Andy wrote:

> Other than the current approach (which I agree is not acceptable),
> I see
> 6 alternatives to the uuid::create() function. I believe all of them
> have been mentioned before.
>
> ...
> 5. Create a function object (that has the random number generator
> as a
> member) that produces uuids. Is this too complicated?
> i.e.:
> class uuid_generator {
> public:
> uuid_generator() {
> engine.seed(get_seed());
> }
> uuid operator() const;
> private:
> Engine& engine;
> };
> ...
>

In order to allow users with special needs full control, the ability
to provide an engine to create is essential to have - at least as one
option. I'm thinking of 100'000+-node BlueGene machines and planned
new 1'000'000+ -CPU 10-petaflop machines. Getting good UUIDs on such
machines might need special considerations, and by having the option
to pass an engine these could be taken care of.

Matthias