|
Boost : |
From: William E. Kempf (wekempf_at_[hidden])
Date: 2002-12-12 16:40:17
Fernando Cacciola said:
> Due to some significant changes to the optional<> class, I had to upload
> a new version so that the review can continue based on the revised
> class.
>
> http://groups.yahoo.com/group/boost/files/optional.zip
>
> The new zip contains the new code, new test and new documentation.
>
> NOTE: The header optional_detail is no longer needed so you may remove
> it before unpacking the zip.
Documentation issues/questions:
* "its safe on most platforms which treat null pointer dereferencing as
undefined behaviour which is effectively a core dump or an non-language
exception"
I know what you're saying here, but I don't like it. Undefined behavior
is undefined behavior, and can never be considered "safe". I'm not sure
how to rework it to convey what you want, but I think it needs reworked.
* The "safe bool" should be documented in the same manner as it is in
shared_ptr, i.e. "operator unspecified-bool-type() const; // never
throws".
* Does the "assert(*opt == v)" in the description for "explicit
optional<T>::optional( T const& v )" indicate that the type T must be
comparable? (I know the documentation clearly says otherwise, but it's
not clear that this is a non-normative part of the documentation.)
* In the acknowledgements for Gennadiy Rozental you describe the "value
based" implementation which no longer exists.
Interface issues/questions:
* Is there a reason for operator!() when we have the safe bool?
* Should you provide a templated assignment to parallel the templated
constructor?
William E. Kempf
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk