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
> 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.
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