Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-04-24 11:32:36


Daniel Frey <daniel.frey_at_[hidden]> writes:

> Heath Davis wrote:
>> Bravo!!! This is a truly novel approach! I agree that the
>> shared_ptr::operator< is meaningless. If boost wishes to claim STL
>> compatibility, container functions should be allowed to operate
>> directly on the base level objects, rendering smart pointers
>> completely transparent.
>
> I disagree strongly. A smart pointer is an as-transparent-as-possible
> replacement for a pointer, not a replacement for the object!

Perfectly put. I would add that just like pointer comparisons, the
semantics of shared_ptr<T>::operator< are very useful**, and if we
accepted Heath's suggested semantics, we'd be replacing functionality
that's otherwise unavailable with functionality we can easily get
another way.

-Dave

**in fact, they're even more useful than the semantics for pointers
because equivalence is not destroyed by derived<-->base class
conversions.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk