Boost logo

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