Subject: Re: [boost] [shared_ptr] Why operator< uses internal_less?
From: Peter Dimov (pdimov_at_[hidden])
Date: 2008-10-09 20:50:54
Frank Mori Hess:
> On Thursday 09 October 2008 11:32 am, Sebastian Redl wrote:
>> dariomt_at_[hidden] wrote:
>> > I see that operator== and operator!= are implemented comparing the
>> > pointer inside the shared_ptr's using get(), but operator< uses
>> > _internal_less, that does a different thing.
>> > I thought that operator< would also be implemented using get(), so
>> > please, can you share the rationale behind the need for _internal_less?
>> get() returns px (the raw pointer), _internal_less compares pn (the
>> This is peculiar, since it means that alias pointers to different
>> subobjects would compare non-equal, but sort equivalent. I'd like to
>> know the rationale of this, too.
> There is a rationale in n1590.
At the last meeting, the committee accepted Herve Broenimann's proposal
to change std::shared_ptr's operator< to compare get(). I don't particularly
like the specifics of that paper, but we'll probably need to change
boost::shared_ptr (and weak_ptr) to match.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk