From: Peter Dimov (pdimov_at_[hidden])
Date: 2002-12-11 12:22:26
From: "Fernando Cacciola" <fernando_cacciola_at_[hidden]>
> Conclusion: I will adopt William's reset, leaving operator*() return
> a reference to the optional value *only* if it is initialized
> (independently of whether opt is const or not).
> Therefore, the proxy is not needed. And so value() isn't needed either.
> Since most reviewers wanted it, I will add a safe_bool idiom, which will
> conditional expressions like:
> if ( opt )
> if ( opt == 0 )
> if ( opt != 0 )
Can you please update the documentation to reflect the changes? I want to
vote on the revised version. ;-)
> However, I'm still unconvinced that uninitialized optionals should compare
> and even though, you can always compare optional values (via operator*),
> I see no benefit in defining relational operators directly (thus these
> will be poisoned)
I think that the proposed comparisons make a lot of sense.
You should consider providing operator<<(std::ostream&, optional), too.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk