Boost logo

Boost :

From: Fernando Cacciola (fernando_cacciola_at_[hidden])
Date: 2005-10-24 12:17:14

Hamish Mackenzie wrote:
> On Tue, 2005-10-18 at 15:03 -0300, Fernando Cacciola wrote:
>>> I still can't think of an
>>> example where it is desirable to have X * and optional< Y > use the
>>> same interface.
>> Dave's just gave one.
> Indeed and I am convinced. Please read my response to that message
> though as I had some other questions.
>> Something like that is already supported (opt != none)
>> It's just not the only way to test for absence.
>> In any event, if dropping safe_bool() were a good idea (I'm unsure
>> the bool case worth dropping it), that could be left as the only
>> choice.
> (opt != none) is cool. Does it work for other OptionalPointees too?
> If
> not, could it?
The std optional<> proposal uses "nullptr" which is the typed null pointer
constant also proposed for standarization.
( o != nullptr ) would then work with pointers (raw and smart) and
optional<> (it would be part of the Nullable concept)

> If the the others stay, the documentation should at least be revised
> indicate that the problem is not limited to optional< bool >. Even
> changing from "std::istream &" to "optional< std::istream > &" could
> easily lead to confusion (boost::tribool won't help much there).

Good point.

> For the record I would be against including (opt != 0) for the same
> reason I don't like the "safe_bool" and "operator !". In fact I don't
> much care for them existing for any pointers.

Indeed. Getting rid of the '0' is the motivation behind nullptr.

> Thank you for taking the time to address my concerns.

Thank you for taking the time to post your concerns!

Fernando Cacciola

Boost list run by bdawes at, gregod at, cpdaniel at, john at