
Hartmut Kaiser wrote:
- What is your evaluation of the design? - What is your evaluation of the implementation? - What is your evaluation of the documentation? - What is your evaluation of the potential usefulness of the library? - Did you try to use the library? With what compiler? Did you have any problems? - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? - Are you knowledgeable about the problem domain?
Regards Hartmut Review Manager
Herewith my non-exhaustive review: I've looked at the library, good work, it looks very interesting. I did a quick reading, and in particular, I paid attention to the many of its intended uses (in the Rationale), and how this would have to be done in practice (the Interface). * The design notes state that it is based on X.667-E. This document describes three construction mechanisms: time-based, rng-based, and string-based. The proposal doesn't have the time-based constructor. Is there a reason why this is missing? * Is the boost namespace that cluttered that it isn't possible to hold "boost::uuid" in it? I think boost::uuids::uuid is kind of repetitive. (Or is there a policy against putting stuff in the boost root-namespace?) * Construction is described in "Constructors" and "Construction" -- this could perhaps lead to confusion? * In Representation: Is there a reason for a .to_string() member function instead of an operator std::string()? I.e., it reduces std::string s = u.to_string() to std::string s( u ); * Considering the examples in the Rationale and the available constructors: I'm curious how to easily "tag an object" using the provided constructors. By a random number? Or could I just pass the address of the object and use a string-based method? In other words, it would be nice if such an example from the Rationale would be topic of an example. I vote for acceptance into boost, given that just a bit more attention is paid to a potential user's convenience. Kind regards, Rutger