|
Boost : |
From: AlisdairM (alisdair.meredith_at_[hidden])
Date: 2005-10-17 17:14:46
Fernando Cacciola wrote:
> (and please!, this doesn't mean at all that optional is a pointer...
> both optional<> and pointers are models of a more fundamental concept:
> OptionalPointee or Nullable)
I dislike the term OptionalPointee as it names the concept after a
possible implementation <g> I DO like the term Nullable while the
debate remains open ;?)
Putting aside rebinding for now, one reason I would really like an
optional type would be to divorce Nullability from pointer semantics.
One reason pointers make bad Nullable types is that they reserve a
value from the valid range to represent their null value. The whole
reason to use optional< int > is to avoid that very problem.
Consider:
int * px = 0;
optional< int * > ox1;
optional< int * > ox2 = px;
Is ox2 an optional value bound to a nulled value, or just a null value?
How is it different to ox1, an unbound null value?
int x = 1;
int *px = &x;
optional< int * > ox = px;
*ox == 1?
or *ox == px?
There is no reason for these questions to confuse clear minds on a
bright day, but removing the pointer interface could be clearer on the
muggy midsummer days when you are trying to get the code out before a
deadline...
-- AlisdairM
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk