Paolo Carlini <[EMAIL PROTECTED]> writes:

| chris jefferson wrote:
| 
| >>Right, but that's the point. "doing arithmetic on arbitrary pointer"
| >>values is
| >>not defined, it is not even defined to compare two pointers pointing
| >>to two
| >>different objects.
| >>
| >While that is true according to the standard, I believe that on most
| >systems you can compare any two pointers. In particular, the C++
| >standard does require a total ordering on pointers, and at the moment
| >that is implemented for all systems by just doing "a < b" on the two
| >pointers.
| >  
| >
| Humpf! Can people please cite exact paragraphs of the relevant
| Standards? Otherwise, I think we are just adding to the confusion. For
| example, in my reading of C99 6.5.9 and C++03 5.10 pointers *can* be
| compared for equality and discussing separately and correctly relational
| operators and equality operators is not a language-lawyer-ism, is *very*
| important for its real world implications. But this is only an example...

I don't understand your query.
I understood Chris' comment as having to do with the implementation of
std::less<T*> (and friends) as required by C++.  Our implementation is just 
a forwarding function to operator< (and friends) on the assumption
that the compiler uses the "obvious" model.

-- Gaby

Reply via email to