> What is the justification, if any, for making a comparison operation
> available, and then defining it as meaningless?
> It's not meaningless. It is just defined such that two independently
> access values may or may not be equal. This is very similar to the way
> floating point works; it shouldn't be that surprising. That is:
> A := F'Access;
> B := A;
> C := G'Access;
> D := C;
> E := F'Acesss;
> if A = B then -- Must be true.
> if C = D then -- Must be true.
> if A = C then -- Must be false.
> if B = D then -- Must be false.
> if A = E then -- May be either true or false.
> if B = E then -- May be either true or false.
OK, I'll agree with you that it's not always meaningless.
It may be determinable at compile time by code analysis,
but it can't be trusted at run time. I still don't see
much use for it!
At least floating point has ways of telling "close enough" :-)