Boost logo

Boost :

Subject: Re: [boost] [Boost.Pool] TR1?
From: Dave Abrahams (dave_at_[hidden])
Date: 2011-04-13 13:40:25


On Wed, Apr 13, 2011 at 1:32 PM, Anders Dalvander <boost_at_[hidden]> wrote:
> On 20:59, Nevin Liber wrote:
>>
>> While the undefined behavior goes away, all that std::less guarantees is a
>> total ordering for pointers.  It doesn't specify what that ordering
>> actually
>> is.
>
> True, the actual order isn't defined. But I don't see the issue.
>
> Externally a contiguous memory block would be seen as a singleton and
> comparing it using std::less to any other contiguous memory block would
> result in either true or false.

The issue is that if you test an address for being within a given
memory block, you can get false positives.

Oh, and to make things worse, IIRC there's nothing that says a < b ==
std::less<...>()(a,b) even within a given block, e.g.
std::less<>()(a,b) could be implemented as a > b! So you can get
false negatives, too.

> WWFSMD?

Advance the tape!

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

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