
On 2/13/06, Andy Tompkins <atompkins@fastmail.fm> wrote:
I have uploaded my initial version to the root directory of boost vault in order that others can view and critique it. In the near future, I plan to add code so that it conforms to the requirements of boost.
Overall the code looks pretty good. I do have a few minorquibbles: - Use forward slashes (/) in include paths, not backslashes. - The ostream inserter might make good use of the IO State Saver class (http://boost.org/libs/io/doc/ios_state.html) - I'd ditch the braces in the stream input and output operations (but I'm not a big GUID user so perhaps these are handy). Or perhaps this could be controlled using a custom manipulator. - Do the stream operators need the try/catch block? I assume these exist to handle the case where the stream has exceptions enabled. In the catch block, the exception is just re-thrown, so is your exception handling even necessary? - The guid::create method only works for Windows. Perhaps an implementation using Boost.Random could be provided for other platforms without "native" GUID creation? There is a class called "zuid_t" in the Adobe Open-Source Libraries ( http://opensource.adobe.com/classadobe_1_1zuid__t.html) which might be useful as a reference design. It makes use of MD5 to produce a seed state for "zuid_t" generation. -- Caleb Epstein caleb dot epstein at gmail dot com