|
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2001-05-28 05:32:22
From: "John Max Skaller" <skaller_at_[hidden]>
> less<> was introduced _solely_ to provide
> a total ordering on pointers, since < cannot be
> relied upon to provide one. It is necessary
> to create STL sets (etc) of pointers.
Someone that knows the history of C++ better than me may correct me if I'm
wrong, but I don't believe this is the case.
The original STL had std::less that was not guaranteed to provide a total
ordering on pointers. std::less was just a function object wrapper around
operator<, just like std::plus is a wrapper around operator+.
std::less was subsequently 'patched' to provide a total ordering because the
alternative - imposing a total ordering requirement on operator< - was not
practical.
Note that std::less_equal, for instance, is also guaranteed to provide a
total ordering for pointers, despite the fact that it does not define a
strict ordering, and hence, cannot be used with standard algorithms and
containers (as a comparison object).
-- Peter Dimov Multi Media Ltd.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk