|
Boost : |
From: David Bergman (davidb_at_[hidden])
Date: 2002-09-05 17:42:39
Sylvain,
What about taking George's midpoint relation and extend it to a total
order?
/David
-----Original Message-----
From: boost-bounces_at_[hidden]
[mailto:boost-bounces_at_[hidden]] On Behalf Of Sylvain Pion
Sent: Thursday, September 05, 2002 6:37 PM
To: boost_at_[hidden]
Subject: Re: [boost] Interval Library and comparison operators
On Thu, Sep 05, 2002 at 06:13:04PM -0400, David Abrahams wrote:
> Sure, it meets the requirements, but it doesn't give you useful
> behavior.
Useful remark :)
> If you try to put (2,4) in a map which contains (3,3), nothing will
> happen. I agree with others that from an STL viewpoint, lexicographic
> ordering or something like it is the only one that makes sense.
Lexicographic ordering is fine for std::pair, because there is no
assumption on the kind of types you plug in (and since they are 2
different types, you cannot compare them with each other, which doesn't
let much room for anything else than lexicographic order).
But I think it doesn't have much meaning on the intervals from the
arithmetic point of view, so I don't think it's a fine default for
arithmetic intervals.
> It's not unreasonable to think of using a rel_ops approach for these
> things, though the operators won't propagate into generic algorithms:
>
> namespace mine {
> boost::interval f(boost::interval* start, boost::interval* finish)
> {
> using boost::intervals::my_preferred_comparison_ops;
>
> ... start[0] < start[1] ... ; // ok
>
> std::sort(start, finish); // error
> };
> }
Yes, and I thought the rel_ops were usually considered evil, because
they are too general, right ?
So they are there when you don't want them, but they are not there when
you want them :)
-- Sylvain _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk